home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1995-10-23 | 81.4 KB | 2,091 lines
#TEMPLATE(Wizards,'Clarion for Windows 1.5 Wizard Templates with Power Browse Support') #HELP('CW15HELP.HLP') #GROUP(%DeclareSymbols) #DECLARE(%GenerationReporting) #SET(%GenerationReporting,%False) #DECLARE(%ReplaceExistingProcedures) #DECLARE(%TXAFile) #DECLARE(%CurrentProcedure) #DECLARE(%CurrentTab) #DECLARE(%InitializeTab) #! #DECLARE(%WindowWidth) #DECLARE(%WindowHeight) #DECLARE(%WindowButtonRows) #DECLARE(%WindowButtonColumns) #! #DECLARE(%WorksheetWidth) #DECLARE(%WorksheetHeight) #DECLARE(%WorksheetButtonRows) #DECLARE(%WorksheetButtonColumns) #! #DECLARE(%MaximumTopOffset) #DECLARE(%CurrentX) #DECLARE(%CurrentY) #DECLARE(%CurrentLineLength) #DECLARE(%ValueConstruct) #DECLARE(%HoldConstruct) #DECLARE(%TestHeight) #DECLARE(%TestWidth) #DECLARE(%TestControlType) #DECLARE(%PictureType) #DECLARE(%RelationRows) #DECLARE(%RelationCols) #DECLARE(%TabLineCount) #DECLARE(%CheckIndentWidth) #DECLARE(%CurrentTabLength) #DECLARE(%CurrentTabLineLength) #DECLARE(%ControlPlacementTries) #DECLARE(%VerticalSpaceNextControl) #DECLARE(%GenerateProgramSection) #DECLARE(%ProcCount) #DECLARE(%ContCounter) #! #DECLARE(%RelationList),MULTI #DECLARE(%BrowseFiles),UNIQUE #DECLARE(%ChildBrowseFiles),UNIQUE #DECLARE(%SelectFiles),UNIQUE #DECLARE(%UpdateFiles),UNIQUE #! #DECLARE(%ProcedureList),MULTI #DECLARE(%QuickProcedureType,%ProcedureList) #DECLARE(%QuickProcedurePrimary,%ProcedureList) #DECLARE(%QuickProcedurePrimaryKey,%ProcedureList) #DECLARE(%QuickProcedureDescription,%ProcedureList) #DECLARE(%QuickProcedureDefault,%ProcedureList) #DECLARE(%QuickProcedureWindow,%ProcedureList) #DECLARE(%QuickProcedureReport,%ProcedureList) #! #DECLARE(%QuickOtherFiles,%ProcedureList),UNIQUE #! #DECLARE(%WindowLayerID,LONG),UNIQUE #DECLARE(%WindowLayerTabText,%WindowLayerID) #DECLARE(%WindowLayerTabREQ,%WindowLayerID) #DECLARE(%WindowLayerTopOffset,%WindowLayerID) #DECLARE(%WindowLayerBottomOffset,%WindowLayerID) #DECLARE(%WindowLayerSpecialCase,%WindowLayerID) #DECLARE(%WindowLayerCheckIndentLevel,%WindowLayerID) #DECLARE(%WindowLayerClosed,%WindowLayerID) #! #DECLARE(%WindowControlID,%WindowLayerID,LONG),MULTI #DECLARE(%WindowControl,%WindowControlID) #DECLARE(%WindowControlXOffset,%WindowControlID) #DECLARE(%WindowControlYOffset,%WindowControlID) #DECLARE(%WindowControlWidth,%WindowControlID) #DECLARE(%WindowControlHeight,%WindowControlID) #DECLARE(%WindowControlStatement,%WindowControlID) #! #DECLARE(%ProcedureDataItemID,LONG),MULTI #DECLARE(%ProcedureDataItem,%ProcedureDataItemID) #DECLARE(%ProceduredataItemType,%ProcedureDataItemID) #! #DECLARE(%QuickTemplateInstance,LONG),MULTI #DECLARE(%QuickTemplateType,%QuickTemplateInstance) #DECLARE(%QuickTemplateParent,%QuickTemplateInstance) #DECLARE(%QuickTemplatePrimary,%QuickTemplateInstance) #DECLARE(%QuickTemplatePrimaryKey,%QuickTemplateInstance) #DECLARE(%QuickTemplateProcProp,%QuickTemplateInstance) #DECLARE(%QuickTemplateControl,%QuickTemplateInstance),MULTI #DECLARE(%QuickTemplateSecondaryFiles,%QuickTemplateInstance),UNIQUE #! #DECLARE(%FileList),MULTI #DECLARE(%FileListPromptWidth,%FileList) #DECLARE(%FileListControlsWidth,%FileList) #DECLARE(%FileListDescription,%FileList) #DECLARE(%FileListTab,%FileList),MULTI #DECLARE(%FileListTabHasPrompts,%FileListTab) #! #DECLARE(%FieldListID,%FileList,LONG),UNIQUE #DECLARE(%FieldList,%FieldListID) #DECLARE(%FieldListType,%FieldListID) #DECLARE(%FieldListJustification,%FieldListID) #DECLARE(%FieldListLookup,%FieldListID) #DECLARE(%FieldListLookupKey,%FieldListID) #DECLARE(%FieldListLookupField,%FieldListID) #DECLARE(%FieldListVerticalSpace,%FieldListID) #DECLARE(%FieldListControl,%FieldListID),MULTI #DECLARE(%FieldListControlType,%FieldListControl) #DECLARE(%FieldListControlXOffset,%FieldListControl) #DECLARE(%FieldListControlYOffset,%FieldListControl) #DECLARE(%FieldListControlWidth,%FieldListControl) #DECLARE(%FieldListControlHeight,%FieldListControl) #DECLARE(%FieldListControlOrig,%FieldListControl) #DECLARE(%FieldListControlLink,%FieldListControl) #DECLARE(%FieldListCheckColumn,%FieldListID) #DECLARE(%FieldListLinkList,%FieldListID),MULTI #DECLARE(%FieldListTab,%FieldListID) #DECLARE(%FieldListHeader,%FieldListID) #DECLARE(%FieldListPicture,%FieldListID) #DECLARE(%FieldListPromptWidth,%FieldListID) #DECLARE(%FieldListBrowseWidth,%FieldListID) #DECLARE(%FieldListTotalWidth,%FieldListID) #DECLARE(%FieldListTotalHeight,%FieldListID) #DECLARE(%FieldListRequiresEnd,%FieldListID) #DECLARE(%FieldListReportControl,%FieldListID),MULTI #DECLARE(%FieldListReportControlType,%FieldListReportControl) #DECLARE(%FieldListReportControlXOffset,%FieldListReportControl) #DECLARE(%FieldListReportControlYOffset,%FieldListReportControl) #DECLARE(%FieldListReportControlWidth,%FieldListReportControl) #DECLARE(%FieldListReportControlHeight,%FieldListReportControl) #! #DECLARE(%KeyListID,%FileList,LONG),UNIQUE #DECLARE(%KeyList,%KeyListID) #DECLARE(%KeyListTab,%KeyListID) #DECLARE(%KeyListNoPopulate,%KeyListID) #DECLARE(%KeyListDescription,%KeyListID) #DECLARE(%KeyListField,%KeyListID),MULTI #! #INSERT(%QuickBrowseDeclarations) #INSERT(%QuickFormDeclarations) #INSERT(%QuickAppDeclarations) #INSERT(%QuickDeclareAdditions) #INSERT(%QuickDeclareFields) #INSERT(%QuickDeclareProcedure) #INSERT(%QuickDeclareDefaults) #!-------------------------------------------------------------------------- #GROUP(%QuickDeclareDefaults) #DECLARE(%HighestUserLevel) #DECLARE(%Menubar) #DECLARE(%LayerWindow) #DECLARE(%LayerPreSheet) #DECLARE(%LayerPostSheet) #DECLARE(%LayerFirstChildBrowse) #DECLARE(%MaximumSheetHeight) #DECLARE(%MaximumSheetWidth) #DECLARE(%MinimumSheetWidth) #DECLARE(%MinimumTextHeight) #DECLARE(%MinimumBrowseHeight) #DECLARE(%MaximumBrowseItemWidth) #DECLARE(%InitialSheetYOffset) #DECLARE(%DefaultXOffset) #DECLARE(%DefaultYOffset) #DECLARE(%DefaultReportXOffset) #DECLARE(%DefaultReportInitialYOffset) #DECLARE(%DefaultReportYOffset) #DECLARE(%DefaultReportTextYOffset) #DECLARE(%DefaultButtonWidth) #DECLARE(%DefaultButtonHeight) #DECLARE(%DefaultRadioHeight) #DECLARE(%DefaultRadioWidth) #DECLARE(%DefaultCheckHeight) #DECLARE(%DefaultCheckBoxXOffset) #DECLARE(%DefaultPromptWidth) #DECLARE(%DefaultPromptHeight) #DECLARE(%DefaultControlHeight) #DECLARE(%DefaultControlWidth) #DECLARE(%MinimumControlWidth) #DECLARE(%DefaultPromptYOffset) #DECLARE(%DefaultListItemHeight) #DECLARE(%MaximumRelationCols) #DECLARE(%MinimumTabLength) #DECLARE(%TabTextOffset) #DECLARE(%TabLineVerticalOffset) #DECLARE(%TabDefaultVerticalOffset) #DECLARE(%DefaultSpinWidthOffset) #DECLARE(%MaximumCheckColumns) #DECLARE(%CheckColumnWidth) #DECLARE(%MaximumBrowseFields) #DECLARE(%RadioInitialYOffset) #DECLARE(%DefaultRadioXOffset) #DECLARE(%DefaultRadioYOffset) #DECLARE(%TopControlOffset) #DECLARE(%MiddleControlOffset) #DECLARE(%BottomControlOffset) #DECLARE(%TextControlOffset) #DECLARE(%DefaultSelectControlText) #DECLARE(%DefaultInsertControlText) #DECLARE(%DefaultChangeControlText) #DECLARE(%DefaultDeleteControlText) #DECLARE(%DefaultCancelControlText) #DECLARE(%DefaultCloseControlText) #DECLARE(%DefaultHelpControlText) #DECLARE(%DefaultOKControlText) #!-------------------------------------------------------------------------- #GROUP(%BeginGeneration) #SET(%TXAFile,%Application & '.txa') #CREATE(%TXAFile) #!-------------------------------------------------------------------------- #GROUP(%GenerateProcedures) #SET(%ProcCount,0) #MESSAGE('Wizard Code Generation Progress',0) #MESSAGE('Beginning Generation',1) #INSERT(%BeginGeneration) #IF(%GenerateProgramSection) [APPLICATION] PROCEDURE Main DICTIONARY '%Application.DCT' #ENDIF #FOR(%ProcedureList) #SET(%ProcCount,%ProcCount + 1) #MESSAGE('Generating Procedure ' & %ProcCount & ': ' & %ProcedureList,1) #MESSAGE('Generating Symbols',2) #INSERT(%ResetGlobalSymbols) #IF(%QuickProcedurePrimary) #FIX(%FileList,%QuickProcedurePrimary) #IF(NOT %FileList) #ADD(%FileList,%QuickProcedurePrimary) #INSERT(%AccumulateFieldList,%FileList) #ENDIF #ENDIF #SET(%CurrentProcedure,%ProcedureList) #MESSAGE('Constructing Procedure',2) #CASE(%QuickProcedureType) #OF('ToolCraft PowerBrowse') #INSERT(%ConstructQuickBrowse) #OF('Clarion Form') #INSERT(%ConstructQuickForm) #OF('Clarion Frame') #INSERT(%PowerBrowseGlobalExtension) #INSERT(%ConstructQuickApp) #OF('Clarion Report') #ELSE #CYCLE #ENDCASE #FIX(%FileList,%QuickProcedurePrimary) #INSERT(%GenerateProcedure) #ENDFOR #PURGE(%RelationList) #PURGE(%BrowseFiles) #PURGE(%ChildBrowseFiles) #PURGE(%SelectFiles) #PURGE(%UpdateFiles) #PURGE(%ProcedureList) #MESSAGE('Importing...',1) #INSERT(%CloseAndImport) #!-------------------------------------------------------------------------- #GROUP(%PowerBrowseGlobalExtension) #INSERT(%WorkAroundForImportBugOnNewApp) [ADDITION] NAME ToolCraft PowerBrowseLibrary [INSTANCE] INSTANCE 1 #!-------------------------------------------------------------------------- #GROUP(%WorkAroundForImportBugOnNewApp) [APPLICATION] PROCEDURE TemporaryMainProcedureNameForBugFix #CLOSE(%TxaFile) #IMPORT(%TXAFile),RENAME #CREATE(%TXAFile) [APPLICATION] PROCEDURE %CurrentProcedure #!-------------------------------------------------------------------------- #GROUP(%ResetGlobalSymbols) #INSERT(%SetGlobalDefaults) #SET(%HighestUserLevel,9999) #SET(%Menubar,10000) #SET(%LayerWindow,10001) #SET(%LayerPostSheet,10002) #SET(%LayerFirstChildBrowse,9950) #SET(%TopControlOffset,0) #SET(%MiddleControlOffset,10000) #SET(%BottomControlOffset,20000) #SET(%TextControlOffset,30000) #FREE(%QuickTemplateInstance) #FREE(%ProcedureDataItemID) #FREE(%WindowLayerID) #FREE(%RelationList) #!-------------------------------------------------------------------------- #GROUP(%GenerateProcedure) #MESSAGE('',3) #MESSAGE('Generating Procedure Header',2) #INSERT(%GenerateProcedureHeader) #MESSAGE('Generating File List',2) #INSERT(%GenerateFileList) #MESSAGE('Generating Procedure Prompts',2) #INSERT(%GenerateProcedurePrompts) #MESSAGE('Generating Field Prompts',2) #INSERT(%GenerateFieldPrompts) #MESSAGE('Generating Extensions',2) #INSERT(%GenerateAdditionPrompts) #IF(%QuickProcedureWindow) #MESSAGE('Generating Window',2) #INSERT(%GenerateWindow) #ENDIF #IF(%QuickProcedureReport) #MESSAGE('Generating Report',2) #INSERT(%GenerateReport) #ENDIF #MESSAGE('',2) #!-------------------------------------------------------------------------- #GROUP(%CloseAndImport) #CLOSE(%TXAFile) #IMPORT(%TXAFile),REPLACE #!-------------------------------------------------------------------------- #GROUP(%GenerateFileList) [FILES] #IF(%QuickProcedureWindow) #FOR(%QuickTemplateInstance),WHERE(%QuickTemplatePrimary) [PRIMARY] %QuickTemplatePrimary [INSTANCE] %QuickTemplateInstance #IF(%QuickTemplatePrimaryKey) [KEY] %QuickTemplatePrimaryKey #ENDIF #IF(ITEMS(%QuickTemplateSecondaryFiles)) [SECONDARY] #FOR(%QuickTemplateSecondaryFiles) %QuickTemplateSecondaryFiles #ENDFOR #ENDIF #ENDFOR #ELSIF(%QuickProcedureReport) [PRIMARY] %QuickProcedurePrimary [INSTANCE] 0 #IF(%QuickProcedurePrimaryKey) [KEY] %QuickProcedurePrimaryKey #ENDIF #ENDIF #IF(ITEMS(%QuickOtherFiles)) [OTHERS] #FOR(%QuickOtherFiles) %QuickOtherFiles #ENDFOR #ENDIF #!-------------------------------------------------------------------------- #GROUP(%GenerateWindow) [WINDOW] #IF(%QuickProcedureType = 'Clarion Frame') AppFrame APPLICATION('Application'),AT(,,400,220),STATUS(-1,80,120,45),SYSTEM,MAX,RESIZE,FONT('MS Sans Serif',8,,) #ELSE QuickWindow WINDOW('%'QuickProcedureDescription'),AT(,,%WindowWidth,%WindowHeight),FONT('MS Sans Serif',8,,),IMM,SYSTEM,GRAY,MDI,HLP('%ProcedureList') #ENDIF #FIX(%WindowLayerID,%MenuBar) #SUSPEND #?MENUBAR #FOR(%WindowControlID) %WindowControlStatement #ENDFOR #?END #RESUME #FIX(%WindowLayerID,%LayerPreSheet) #INSERT(%ConstructWindowLayer) #IF(%QuickProcedureType <> 'ToolCraft PowerBrowse') #SUSPEND #?SHEET,AT(%DefaultXOffset,%DefaultYOffset,%WorksheetWidth,%WorksheetHeight),USE(?CurrentTab),#ORIG(CurrentTab) #FOR(%WindowLayerID),WHERE(%WindowLayerID =< %HighestUserLevel AND %WindowLayerID > %LayerPreSheet) TAB('%WindowLayerTabText') #INSERT(%ConstructWindowLayer) END #ENDFOR #?END #RESUME #ENDIF #FIX(%WindowLayerID,%LayerPostSheet) #INSERT(%ConstructWindowLayer) #FIX(%WindowLayerID,%LayerWindow) #INSERT(%ConstructWindowLayer) END #!-------------------------------------------------------------------------- #GROUP(%ConstructWindowLayer) #FOR(%WindowControlID) #FIND(%QuickTemplateControl,%WindowControl) #IF(%QuickTemplateControl) #INSERT(%PopulateControlTemplate) #ELSE #FIND(%FieldList,%WindowControl) #IF(%FieldList) #IF(%WindowLayerID = %LayerWindow) #INSERT(%PopulateDictionaryControl,%WindowControlXOffset,%WindowControlYOffset,%WindowWidth,%WindowHeight) #ELSE #INSERT(%PopulateDictionaryControl,%WindowControlXOffset,%WindowControlYOffset,%WorksheetWidth,%WorksheetHeight) #ENDIF #ELSE %WindowControlStatement,USE(%WindowControl),AT(%WindowControlXOffset,%WindowControlYOffset,%WindowControlWidth,%WindowControlHeight) #ENDIF #ENDIF #ENDFOR #!-------------------------------------------------------------------------- #GROUP(%GenerateReport),AUTO #DECLARE(%KeyFieldList),MULTI #FIX(%FileList,%QuickProcedurePrimary) #FIX(%File,%QuickProcedurePrimary) #FIX(%Key,%QuickProcedurePrimaryKey) [REPORT] report REPORT,AT(1000,2000,6000,7000),PRE(RPT),FONT('Arial',10,,),THOUS HEADER,AT(1000,1000,6000,1000) END detail DETAIL #SET(%CurrentY,%DefaultReportInitialYOffset) #FOR(%KeyField) #FOR(%FieldListID),WHERE(%FieldList = %KeyField) #FOR(%FieldListReportControl) #SET(%ValueConstruct,%FieldListReportControl) #SET(%ValueConstruct,REPLACE(%ValueConstruct,'MSG','')) %ValueConstruct,AT(%DefaultReportXOffset,%CurrentY,,) #ENDFOR #ADD(%KeyFieldList,%KeyField) #SET(%CurrentY,%CurrentY + %DefaultReportYOffset) #ENDFOR #ENDFOR #FIX(%File,%QuickProcedurePrimary) #FOR(%FieldListID),WHERE(%FieldListType <> 'MEMO') #FIX(%KeyFieldList,%FieldList) #IF(NOT %KeyFieldList) #FOR(%FieldListReportControl) #SET(%ValueConstruct,%FieldListReportControl) #SET(%ValueConstruct,REPLACE(%ValueConstruct,'MSG','')) %ValueConstruct,AT(%DefaultReportXOffset,%CurrentY,,) #ENDFOR #SET(%CurrentY,%CurrentY + %DefaultReportYOffset) #ENDIF #ENDFOR END #FOR(%FieldListID),WHERE(%FieldListType = 'MEMO') #SET(%ValueConstruct,%DefaultReportTextYOffset * 2) %FieldList:Detail DETAIL,AT(,,6000,%ValueConstruct),USE(?%FieldList:Detail) #SET(%ValueConstruct,6000 - %DefaultReportXOffset * 2) TEXT,AT(%DefaultReportTextYOffset,%DefaultReportTextYOffset,%ValueConstruct,4000) END #ENDFOR FOOTER,AT(1000,9000,6000,1000) END END #!------------------------------------------------------- #GROUP(%AddPrimaryBrowse,%NewProcedureFile) #DECLARE(%NewProcedureName) #FIND(%File,%NewProcedureFile) #SET(%NewProcedureName,'Browse' & %File) #IF(NOT %ReplaceExistingProcedures) #FIX(%Procedure,%NewProcedureName) #ENDIF #IF(NOT %Procedure) #FIX(%ProcedureList,%NewProcedureName) #IF(NOT %ProcedureList) #ADD(%ProcedureList,%NewProcedureName) #SET(%QuickProcedureType,'ToolCraft PowerBrowse') #SET(%QuickProcedurePrimary,%File) #SET(%QuickProcedureDescription,'Browse the ' & %File & ' File') #SET(%QuickProcedureDefault,'Primary Browse') #SET(%QuickProcedureWindow,%True) #ENDIF #ENDIF #!------------------------------------------------------- #GROUP(%AddSecondaryBrowse,%NewProcedureKey) #DECLARE(%NewProcedureName) #FIND(%Key,%NewProcedureKey) #SET(%NewProcedureName,'Browse' & %Key) #IF(NOT %ReplaceExistingProcedures) #FIX(%Procedure,%NewProcedureName) #ENDIF #IF(NOT %Procedure) #FIX(%ProcedureList,%NewProcedureName) #IF(NOT %ProcedureList) #ADD(%ProcedureList,%NewProcedureName) #SET(%QuickProcedureType,'ToolCraft PowerBrowse') #SET(%QuickProcedurePrimary,%File) #SET(%QuickProcedurePrimaryKey,%Key) #SET(%QuickProcedureDescription,'Browse the ' & %File & ' File by ' & %Key) #SET(%QuickProcedureDefault,'Secondary Browse') #SET(%QuickProcedureWindow,%True) #ENDIF #ENDIF #!------------------------------------------------------- #GROUP(%AddSelectBrowse,%NewProcedureFile) #DECLARE(%NewProcedureName) #FIX(%File,%NewProcedureFile) #SET(%NewProcedureName,'Select' & %File) #IF(NOT %ReplaceExistingProcedures) #FIX(%Procedure,%NewProcedureName) #ENDIF #IF(NOT %Procedure) #FIX(%ProcedureList,%NewProcedureName) #IF(NOT %ProcedureList) #ADD(%ProcedureList,%NewProcedureName) #SET(%QuickProcedureType,'ToolCraft PowerBrowse') #SET(%QuickProcedurePrimary,%File) #SET(%QuickProcedureDescription,'Select a ' & %File & ' Record') #SET(%QuickProcedureDefault,'Select Browse') #SET(%QuickProcedureWindow,%True) #ENDIF #ENDIF #!------------------------------------------------------- #GROUP(%AddUpdateProcedure,%NewProcedureFile,%OverrideProcedureName) #DECLARE(%NewProcedureName) #IF(NOT %OverrideProcedureName) #SET(%NewProcedureName,'Update' & %NewProcedureFile) #ELSE #SET(%NewProcedureName,%OverrideProcedureName) #ENDIF #IF(NOT %ReplaceExistingProcedures) #FIX(%Procedure,%NewProcedureName) #ENDIF #IF(NOT %Procedure) #FIX(%ProcedureList,%NewProcedureName) #IF(NOT %ProcedureList) #ADD(%ProcedureList,%NewProcedureName) #SET(%QuickProcedureType,'Clarion Form') #SET(%QuickProcedurePrimary,%NewProcedureFile) #SET(%QuickProcedureDescription,'Update the ' & %NewProcedureFile & ' File') #SET(%QuickProcedureDefault,'Update Form') #SET(%QuickProcedureWindow,%True) #ENDIF #ENDIF #!------------------------------------------------------- #GROUP(%AddReportProcedure,%NewProcedurePrimary) #DECLARE(%NewProcedureName) #FIX(%File,%NewProcedurePrimary) #IF(%File) #SET(%NewProcedureName,'Print' & %File) #ELSE #FIND(%Key,%NewProcedurePrimary) #SET(%NewProcedureName,'Print' & %Key) #ENDIF #IF(NOT %ReplaceExistingProcedures) #FIX(%Procedure,%NewProcedureName) #ENDIF #IF(NOT %Procedure) #FIX(%ProcedureList,%NewProcedureName) #IF(NOT %ProcedureList) #ADD(%ProcedureList,%NewProcedureName) #SET(%QuickProcedureType,'Clarion Report') #SET(%QuickProcedurePrimary,%File) #SET(%QuickProcedurePrimaryKey,%Key) #IF(%Key) #SET(%QuickProcedureDescription,'Print the ' & %File & ' File by ' & %Key) #ELSE #SET(%QuickProcedureDescription,'Print the ' & %File & ' File') #ENDIF #SET(%QuickProcedureDefault,'Report') #SET(%QuickProcedureReport,%True) #ENDIF #ENDIF #!-------------------------------------------------------------------------- #INCLUDE('WField.TPW') #INCLUDE('WFrame.TPW') #INCLUDE('WReport.TPW') #INCLUDE('WStart.TPW') #INCLUDE('WApp.TPW') #INCLUDE('WDefault.TPW') #! #! #! #! #!-------------------------------------------------------------------------- #! #!Replacement for WPROC.TPW #! #!-------------------------------------------------------------------------- #GROUP(%QuickDeclareProcedure) #DECLARE(%Parameters,%ProcedureList) #DECLARE(%ReturnValue,%ProcedureList) #DECLARE(%WindowOperationMode,%ProcedureList) #DECLARE(%INISaveWindow,%ProcedureList) #DECLARE(%WindowMessage,%ProcedureList) #DECLARE(%EnablePrintPreview,%ProcedureList) #DECLARE(%EnableQuickScan,%ProcedureList) #!--------------------------------------------------- #GROUP(%GenerateProcedurePrompts) [PROMPTS] #IF(%Parameters) %%Parameters STRING ('%Parameters') #ENDIF #IF(%ReturnValue) %%ReturnValue STRING ('%ReturnValue') #ENDIF #IF(%WindowOperationMode) %%WindowOperationMode STRING ('%WindowOperationMode') #ENDIF #IF(%INISaveWindow) %%INISaveWindow LONG (%INISaveWindow) #ENDIF #IF(%WindowMessage) %%WindowMessage STRING ('%WindowMessage') #ENDIF #IF(%EnablePrintPreview) %%EnablePrintPreview LONG (%EnablePrintPreview) #ENDIF #IF(%EnableQuickScan) %%EnableQuickScan LONG (%EnableQuickScan) #ENDIF #!-------------------------------------------------------------------------- #GROUP(%GenerateProcedureHeader) [PROCEDURE] NAME %ProcedureList [COMMON] DESCRIPTION '%QuickProcedureDescription' FROM %QuickProcedureType #SUSPEND [DATA] #FOR(%ProcedureDataItemID) %[25]ProcedureDataItem %ProcedureDataItemType #ENDFOR #RESUME #! #! #! #! #!-------------------------------------------------------------------------- #! #!Replacement for WCONTROL.TPW #! #!-------------------------------------------------------------------------- #GROUP(%GenerateAdditionPrompts) #FOR(%QuickTemplateInstance) #CASE(%QuickTemplateType) #OF('ASCIIBox') #OF('ASCIIPrintButton') #OF('ASCIISearchButton') #OF('BrowseBox') #INSERT(%QuickGenerateBrowseBox) #OF('OrderCWTab') #INSERT(%QuickGenerateOrderCWTab) #OF('PBOptionsExtension') #INSERT(%QuickGeneratePBOptionsExtension) #OF('BrowseSelectButton') #INSERT(%QuickGenerateBrowseSelectButton) #OF('BrowseUpdateButton') #INSERT(%QuickGenerateBrowseUpdateButton) #OF('CancelButton') #INSERT(%QuickGenerateCancelButton) #OF('CloseButton') #INSERT(%QuickGenerateCloseButton) #OF('DOSFileLookup') #OF('FieldLookupButton') #OF('SaveButton') #INSERT(%QuickGenerateSaveButton) #OF('DateTimeDisplay') #OF('RecordValidation') #INSERT(%QuickGenerateRecordValidation) #ENDCASE #ENDFOR #!------------------------------------------------------------- #GROUP(%QuickDeclareAdditions) #INSERT(%QuickDeclareASCIIBox) #INSERT(%QuickDeclareASCIIPrintButton) #INSERT(%QuickDeclareASCIISearchButton) #INSERT(%QuickDeclareBrowseBox) #INSERT(%QuickDeclareBrowseUpdateButton) #INSERT(%QuickDeclareBrowseSelectButton) #INSERT(%QuickDeclareDOSFileLookup) #INSERT(%QuickDeclareFileDrop) #INSERT(%QuickDeclareFieldLookupButton) #INSERT(%QuickDeclareSaveButton) #INSERT(%QuickDeclareDateTimeDisplay) #INSERT(%QuickDeclareRecordValidation) #INSERT(%QuickDeclareOrderCWTab) #INSERT(%QuickDeclarePBOptionsExtension) #!------------------------------------------------------------- #GROUP(%QuickDeclareASCIIBox) #DECLARE(%ASCIIBoxControl,%QuickTemplateInstance) #DECLARE(%ASCIIBoxDescription,%ASCIIBoxControl) #DECLARE(%ASCIIBoxFileName,%ASCIIBoxControl) #DECLARE(%ASCIIBoxDisplayBytes,%ASCIIBoxControl) #DECLARE(%ASCIIBoxWarning,%ASCIIBoxControl) #!------------------------------------------------------------- #GROUP(%QuickDeclareASCIIPrintButton) #DECLARE(%PrintParentASCIIBoxInstance,%QuickTemplateInstance) #DECLARE(%ASCIIPrintButtonControl,%QuickTemplateInstance) #DECLARE(%ASCIIPrintButtonParent,%ASCIIPrintButtonControl) #!------------------------------------------------------------- #GROUP(%QuickDeclareASCIISearchButton) #DECLARE(%SearchParentASCIIBoxInstance,%QuickTemplateInstance) #DECLARE(%ASCIIFindControl,%QuickTemplateInstance) #DECLARE(%ASCIINextControl,%ASCIIFindControl) #DECLARE(%ASCIIFindButtonParent,%ASCIIFindControl) #!------------------------------------------------------------- #GROUP(%QuickDeclareBrowseSelectButton) #DECLARE(%HideIfDisabled,%QuickTemplateInstance) #!------------------------------------------------------------- #GROUP(%QuickSetBrowseSelectButton) #SET(%HoldConstruct,%QuickTemplateInstance) #ADD(%QuickTemplateInstance,ITEMS(%QuickTemplateInstance)+1) #SET(%QuickTemplateType,'BrowseSelectButton') #SET(%QuickTemplateProcProp,0) #SET(%QuickTemplateParent,%HoldConstruct) #ADD(%QuickTemplateControl,'?Select:' & %QuickTemplateInstance) #SET(%HideIfDisabled,1) #!------------------------------------------------------------- #GROUP(%QuickGenerateBrowseSelectButton) [ADDITION] NAME ToolCraft SelectButton [INSTANCE] INSTANCE %QuickTemplateInstance PARENT %QuickTemplateParent #IF(%QuickTemplateProcProp) PROCPROP #ENDIF [PROMPTS] %%HideIfDisabled LONG (%HideIfDisabled) #!------------------------------------------------------------- #GROUP(%QuickDeclareBrowseUpdateButton) #DECLARE(%UpdateButtonDefault,%QuickTemplateInstance) #DECLARE(%EditViaPopup,%QuickTemplateInstance) #!------------------------------------------------------------- #GROUP(%QuickSetBrowseUpdateButton,%QuickUpdatePopupMenu,%QuickUpdateButtonDefault) #SET(%HoldConstruct,%QuickTemplateInstance) #ADD(%QuickTemplateInstance,ITEMS(%QuickTemplateInstance)+1) #SET(%QuickTemplateType,'BrowseUpdateButton') #SET(%QuickTemplateProcProp,%False) #SET(%QuickTemplateParent,%HoldConstruct) #ADD(%QuickTemplateControl,'?Insert:' & %QuickTemplateInstance) #ADD(%QuickTemplateControl,'?Change:' & %QuickTemplateInstance) #ADD(%QuickTemplateControl,'?Delete:' & %QuickTemplateInstance) #SET(%HideIfDisabled,1) #SET(%UpdateButtonDefault,%QuickUpdateButtonDefault) #SET(%EditViaPopup,%QuickUpdatePopupMenu) #!------------------------------------------------------------- #GROUP(%QuickGenerateBrowseUpdateButton) [ADDITION] NAME ToolCraft UpdateButtons [INSTANCE] INSTANCE %QuickTemplateInstance PARENT %QuickTemplateParent #IF(%QuickTemplateProcProp) PROCPROP #ENDIF [PROMPTS] #!------------------------------------------------------------- #GROUP(%QuickSetCloseButton) #ADD(%QuickTemplateInstance,ITEMS(%QuickTemplateInstance)+1) #SET(%QuickTemplateType,'CloseButton') #SET(%QuickTemplateProcProp,%False) #ADD(%QuickTemplateControl,'?Close') #!------------------------------------------------------------- #GROUP(%QuickGenerateCloseButton) [ADDITION] NAME Clarion CloseButton [INSTANCE] INSTANCE %QuickTemplateInstance #!------------------------------------------------------------- #GROUP(%QuickSetCancelButton) #ADD(%QuickTemplateInstance,ITEMS(%QuickTemplateInstance)+1) #SET(%QuickTemplateType,'CancelButton') #SET(%QuickTemplateProcProp,%False) #ADD(%QuickTemplateControl,'?Cancel') #!------------------------------------------------------------- #GROUP(%QuickGenerateCancelButton) [ADDITION] NAME Clarion CancelButton [INSTANCE] INSTANCE %QuickTemplateInstance #!------------------------------------------------------------- #GROUP(%QuickDeclareBrowseBox) #! #DECLARE(%QBBPrimary,%QuickTemplateInstance) #DECLARE(%QBBKeyList,%QuickTemplateInstance),MULTI #DECLARE(%QBBKeyListID,%QBBKeyList) #DECLARE(%QBBSortID,%QBBKeyList) #DECLARE(%QBBLocator,%QBBKeyList) #DECLARE(%QBBRangeField,%QBBKeyList) #DECLARE(%QBBRangeFile,%QBBKeyList) #DECLARE(%QBBParentFound,%QuickTemplateInstance) #DECLARE(%QBBFrom,%QuickTemplateInstance) #DECLARE(%QBBFormat,%QuickTemplateInstance) #DECLARE(%QBBFields,%QuickTemplateInstance) #DECLARE(%QBBWidth,%QuickTemplateInstance) #DECLARE(%QBBUpdateProcedure,%QuickTemplateInstance) #DECLARE(%CurrentBrowseBoxInstance) #DECLARE(%PopulatedFieldCount) #!------------------------------------------------------------- #GROUP(%QuickSetBrowseBox,%PassedBrowseFile,%PassedProcProp,%PassedAccessKey,%QuickUpdateProcedure) #! #ADD(%QuickTemplateInstance,ITEMS(%QuickTemplateInstance)+1) #SET(%QuickTemplateType,'BrowseBox') #SET(%QuickTemplateProcProp,%PassedProcProp) #SET(%QuickTemplatePrimary,%PassedBrowseFile) #SET(%QBBUpdateProcedure,%QuickUpdateProcedure) #FIX(%FileList,%QuickTemplatePrimary) #SET(%QuickBrowseListCount,%QuickBrowseListCount+1) #IF(NOT ITEMS(%RelationList)) #ADD(%QuickTemplateControl,'?List') #SET(%QBBFrom,'BRWQ') #ELSE #ADD(%QuickTemplateControl,'?List' & %QuickBrowseListCount) #SET(%QBBFrom,'BRWQ' & %QuickBrowseListCount) #ENDIF #SET(%QBBWidth,0) #SET(%QBBFields,'') #SET(%QBBFormat,'') #FREE(%QBBKeyList) #SET(%ValueConstruct,0) #FIX(%FileList,%QuickTemplatePrimary) #SET(%PopulatedFieldCount,0) #FOR(%FieldListID),WHERE(%FieldListBrowseWidth) #SET(%PopulatedFieldCount,%PopulatedFieldCount + 1) #IF(%PopulatedFieldCount = %MaximumBrowseFields) #BREAK #ENDIF #SET(%QBBFields,%QBBFields & ',' & %FieldList) #SET(%QBBWidth,%QBBWidth + %FieldListBrowseWidth) #SET(%QBBFormat,%QBBFormat & %FieldListBrowseWidth & %FieldListJustification & '|M~' & %FieldListHeader & '~' & %FieldListPicture & '@') #ENDFOR #SET(%QBBFields,SUB(%QBBFields,2,LEN(%QBBFields)-1)) #FIX(%FileList,%QuickTemplatePrimary) #FIX(%File,%QuickTemplatePrimary) #IF(%PassedAccessKey) #FOR(%KeyListID) #IF(%KeyList = %PassedAccessKey) #ADD(%QBBKeyList,%PassedAccessKey) #SET(%QBBSortID,1) #SET(%QBBKeyListID,%KeyListID) #BREAK #ENDIF #ENDFOR #ELSE #FOR(%KeyListID),WHERE(NOT %KeyListNoPopulate) #SET(%ValueConstruct,%False) #IF(ITEMS(%KeyListField)) #SET(%ValueConstruct,%True) #ENDIF #ADD(%QBBKeyList,%KeyList) #IF(ITEMS(%QBBKeyList)=1) #SET(%QBBSortID,ITEMS(%Key)) #ELSE #SET(%QBBSortID,ITEMS(%QBBKeyList)-1) #ENDIF #SET(%QBBKeyListID,%KeyListID) #ENDFOR #ENDIF #IF(ITEMS(%QBBKeyList)) #SET(%QBBParentFound,%False) #FOR(%QBBKeyList) #FIX(%KeyListID,%QBBKeyListID) #SET(%QBBLocator,%True) #IF(%QuickBrowseParentHandling <> 'Do not select by parent record') #FOR(%Relation),WHERE(%FileRelationType='MANY:1' AND %FileKey=%KeyList) #SET(%QBBLocator,%False) #SET(%QBBParentFound,%True) #ADD(%QuickOtherFiles,%Relation) #SET(%QBBRangeFile,%Relation) #FOR(%RelationKeyField) #IF(NOT(%RelationKeyField)) #SET(%QBBLocator,%True) #BREAK #ELSE #SET(%QBBRangeField,%RelationKeyFieldLink) #ENDIF #ENDFOR #ENDFOR #ENDIF #ENDFOR #ENDIF #SELECT(%QBBKeyList,1) #SET(%QuickTemplatePrimaryKey,%QBBKeyList) #IF(ITEMS(%QBBKeyList) > 1) #SET(%QuickBrowseOrderCWTab,%True) #ELSE #SET(%QuickBrowseOrderCWTab,%False) #ENDIF #!------------------------------------------------------------- #GROUP(%QuickGenerateBrowseBox) [ADDITION] NAME ToolCraft BrowseBox [INSTANCE] INSTANCE %QuickTemplateInstance #IF(%QuickTemplateProcProp) PROCPROP #ENDIF [PROMPTS] #FIX(%File,%QuickTemplatePrimary) %%EnableQuickScan LONG (0) #SELECT(%QBBKeyList,1) #IF(%QBBLocator) %%LocatorType DEFAULT ('Step') #ELSE %%LocatorType DEFAULT ('') #ENDIF %%UpdateProcedure PROCEDURE (%QBBUpdateProcedure) %%RecordFilter @S255 ('') %%RangeField COMPONENT (%QBBRangeField) #IF(ITEMS(%QBBKeyList) < 2) %%UsingMultiDisplay LONG (0) #IF(%QBBRangeField) %%RangeLimitType DEFAULT ('File Relationship') #ELSE %%RangeLimitType DEFAULT ('') #ENDIF %%RangeLimit FIELD () %%RangeLow FIELD () %%RangeHigh FIELD () %%RangeFile FILE (%QBBRangeFile) %%ScrollBehavior DEFAULT ('Fixed Thumb') %%ScrollKeyDistribution STRING ('') #ELSE %%UsingMultiDisplay LONG (1) #SET(%ValueConstruct,'') #FOR(%QBBKeyList) #SET(%ValueConstruct,%ValueConstruct & ',' & INSTANCE(%QBBKeyList)) #ENDFOR #SET(%ValueConstruct,SUB(%ValueConstruct,2,LEN(%ValueConstruct)-1)) %%ChangeOrderControl DEFAULT ('?ChangeOrder') %%AltFormats MULTI LONG (%ValueConstruct) #INSERT(%QuickGenBrowseBoxSort,'OrderDescription') #INSERT(%QuickGenBrowseBoxSort,'OrderKey') #INSERT(%QuickGenBrowseBoxSort,'AltKeyDisplayOrder') #INSERT(%QuickGenBrowseBoxSort,'UseAltListBox') #INSERT(%QuickGenBrowseBoxSort,'AltListBox') #INSERT(%QuickGenBrowseBoxSort,'AltLocatorType') #INSERT(%QuickGenBrowseBoxSort,'AltSearchEntryPicture') #INSERT(%QuickGenBrowseBoxSort,'AltRecordFilter') #INSERT(%QuickGenBrowseBoxSort,'AltRangeField') #INSERT(%QuickGenBrowseBoxSort,'AltRangeLimitType') #INSERT(%QuickGenBrowseBoxSort,'AltRangeLimit') #INSERT(%QuickGenBrowseBoxSort,'AltRangeLow') #INSERT(%QuickGenBrowseBoxSort,'AltRangeHigh') #INSERT(%QuickGenBrowseBoxSort,'AltRangeFile') #INSERT(%QuickGenBrowseBoxSort,'AltScrollBehavior') #ENDIF #!-------------------------------------------------------------------------- #GROUP(%QuickGenBrowseBoxSort,%CurrentPlace) #SET(%ValueConstruct,ITEMS(%QBBKeyList)) #CASE(%CurrentPlace) #OF('OrderDescription') %%OrderDescription DEPEND %%AltFormats @S255 TIMES %ValueConstruct #OF('OrderKey') %%OrderKey DEPEND %%AltFormats KEY TIMES %ValueConstruct #OF('AltKeyDisplayOrder') %%AltKeyDisplayOrder DEPEND %%AltFormats STRING TIMES %ValueConstruct #OF('UseAltListBox') %%UseAltListBox DEPEND %%AltFormats LONG TIMES %ValueConstruct #OF('AltListBox') %%AltListBox DEPEND %%AltFormats FIELD TIMES %ValueConstruct #OF('AltLocatorType') %%AltLocatorType DEPEND %%AltFormats STRING TIMES %ValueConstruct #OF('AltSearchEntryPicture') %%AltSearchEntryPicture DEPEND %%AltFormats @S30 TIMES %ValueConstruct #OF('AltRecordFilter') %%AltRecordFilter DEPEND %%AltFormats @S180 TIMES %ValueConstruct #OF('AltRangeField') %%AltRangeField DEPEND %%AltFormats COMPONENT TIMES %ValueConstruct #OF('AltRangeLimitType') %%AltRangeLimitType DEPEND %%AltFormats STRING TIMES %ValueConstruct #OF('AltRangeLimit') %%AltRangeLimit DEPEND %%AltFormats @S100 TIMES %ValueConstruct #OF('AltRangeLow') %%AltRangeLow DEPEND %%AltFormats @S100 TIMES %ValueConstruct #OF('AltRangeHigh') %%AltRangeHigh DEPEND %%AltFormats @S100 TIMES %ValueConstruct #OF('AltRangeFile') %%AltRangeFile DEPEND %%AltFormats FILE TIMES %ValueConstruct #OF('AltScrollBehavior') %%AltScrollBehavior DEPEND %%AltFormats STRING TIMES %ValueConstruct #ENDCASE #FOR(%QBBKeyList) #SET(%ValueConstruct,INSTANCE(%QBBKeyList)) #SET(%HoldConstruct,INSTANCE(%QBBKeyList)) #CASE(%CurrentPlace) #OF('OrderDescription') #FIX(%KeyListID,%QBBKeyListID) WHEN (%ValueConstruct) ('%KeyListTab') #OF('OrderKey') WHEN (%ValueConstruct) (%QBBKeyList) #OF('AltKeyDisplayOrder') WHEN (%ValueConstruct) ('Normal') #OF('UseAltListBox') WHEN (%ValueConstruct) (0) #OF('AltListBox') WHEN (%ValueConstruct) () #OF('AltLocatorType') #IF(%QBBLocator) WHEN (%ValueConstruct) ('Step') #ELSE WHEN (%ValueConstruct) ('') #ENDIF #OF('AltSearchEntryPicture') WHEN (%ValueConstruct) () #OF('AltRecordFilter') WHEN (%ValueConstruct) () #OF('AltRangeField') WHEN (%ValueConstruct) (%QBBRangeField) #OF('AltRangeLimitType') #IF(%QBBRangeField) WHEN (%ValueConstruct) ('File Relationship') #ELSE WHEN (%ValueConstruct) ('') #ENDIF #OF('AltRangeLimit') WHEN (%ValueConstruct) () #OF('AltRangeLow') WHEN (%ValueConstruct) () #OF('AltRangeHigh') WHEN (%ValueConstruct) () #OF('AltRangeFile') WHEN (%ValueConstruct) (%QBBRangeFile) #OF('AltScrollBehavior') WHEN (%ValueConstruct) ('Fixed Thumb') #ENDCASE #ENDFOR #!------------------------------------------------------------- #GROUP(%QuickDeclareDOSFileLookup) #!------------------------------------------------------------- #GROUP(%QuickDeclareFileDrop) #!------------------------------------------------------------- #GROUP(%QuickDeclareFieldLookupButton) #DECLARE(%FLBControlToLookup,%QuickTemplateInstance) #!------------------------------------------------------------- #GROUP(%QuickSetFieldLookupButton) #ADD(%QuickTemplateInstance,ITEMS(%QuickTemplateInstance)+1) #SET(%QuickTemplateType,'FieldLookupButton') #SET(%QuickTemplateProcProp,%False) #SET(%QuickTemplatePrimary,%Null) #ADD(%QuickTemplateControl,'?CallLookup:' & %WindowControl) #SET(%FLBControlToLookup,%WindowControl) #!------------------------------------------------------------- #GROUP(%QuickGenerateFieldLookupButton) [ADDITION] NAME Clarion FieldLookupButton [INSTANCE] INSTANCE %QuickTemplateInstance [PROMPTS] %%ControlToLookup PROCEDURE (%FLBControlToLookup) #!------------------------------------------------------------- #GROUP(%QuickDeclareSaveButton) #DECLARE(%QSBInsertAllowed,%QuickTemplateInstance) #DECLARE(%QSBChangeAllowed,%QuickTemplateInstance) #DECLARE(%QSBDeleteAllowed,%QuickTemplateInstance) #DECLARE(%QSBActionOnDelete,%QuickTemplateInstance) #DECLARE(%QSBInsertMessage,%QuickTemplateInstance) #DECLARE(%QSBChangeMessage,%QuickTemplateInstance) #DECLARE(%QSBDeleteMessage,%QuickTemplateInstance) #DECLARE(%QSBActionOnCancel,%QuickTemplateInstance) #DECLARE(%QSBMessageLocation,%QuickTemplateInstance) #DECLARE(%QSBMessageStatusSection,%QuickTemplateInstance) #DECLARE(%QSBAppendToTitleID,%QuickTemplateInstance) #!------------------------------------------------------------- #GROUP(%QuickSetSaveButton) #ADD(%QuickTemplateInstance,ITEMS(%QuickTemplateInstance)+1) #SET(%QuickTemplateType,'SaveButton') #SET(%QuickTemplateProcProp,1) #SET(%QuickTemplatePrimary,%QuickProcedurePrimary) #ADD(%QuickTemplateControl,'?OK') #SET(%QSBInsertAllowed,%QuickFormAllowInsert) #SET(%QSBChangeAllowed,%QuickFormAllowChange) #SET(%QSBDeleteAllowed,%QuickFormAllowDelete) #SET(%QSBActionOnDelete,'Standard Warning') #SET(%QSBInsertMessage,%QuickFormInsertMessage) #SET(%QSBChangeMessage,%QuickFormChangeMessage) #SET(%QSBDeleteMessage,%QuickFormDeleteMessage) #SET(%QSBActionOnCancel,'Confirm Cancel') #SET(%QSBMessageLocation,%QuickFormMessageLocation) #IF(%QSBMessageLocation = 'Status Bar') #SET(%QSBMessageStatusSection,2) #ELSE #SET(%QSBMessageStatusSection,0) #ENDIF #IF(%QuickFormAppendToTitleID) #SET(%QSBAppendToTitleID,'!' & %QuickFormAppendToTitleID) #ELSE #SET(%QSBAppendToTitleID,'') #ENDIF #!------------------------------------------------------------- #GROUP(%QuickGenerateSaveButton) [ADDITION] NAME Clarion SaveButton [INSTANCE] INSTANCE %QuickTemplateInstance #IF(%QuickTemplateProcProp) PROCPROP #ENDIF [PROMPTS] %%InsertAllowed LONG (%QSBInsertAllowed) %%InsertMessage @S40 ('%QuickFormInsertMessage') %%ChangeAllowed LONG (%QSBChangeAllowed) %%ChangeMessage @S40 ('%QuickFormChangeMessage') %%DeleteAllowed LONG (%QSBDeleteAllowed) %%DeleteMessage @S40 ('%QuickFormDeleteMessage') %%MessageHeader LONG (0) %%ActionOnDelete STRING ('%QSBActionOnDelete') %%PrimingFields MULTI LONG () %%PrimedField DEPEND %%PrimingFields FIELD TIMES 0 %%PrimedValue DEPEND %%PrimingFields @S255 TIMES 0 %%ActionOnCancel STRING ('%QSBActionOnCancel') %%MessageLocation STRING ('%QSBMessageLocation') %%MessageStatusSection @n1 (%QSBMessageStatusSection) #IF(%QSBAppendToTitleID) %%AppendToTitle LONG (1) %%AppendToTitleID @S255 ('%QSBAppendToTitleID') #ELSE %%AppendToTitle LONG () %%AppendToTitleID @S255 ('') #ENDIF #!------------------------------------------------------------- #GROUP(%QuickDeclareDateTimeDisplay) ! #!------------------------------------------------------------- #GROUP(%QuickDeclareRecordValidation) #DECLARE(%QRVValidateOnAccept) #DECLARE(%QRVValidateOnNonStopSelect) #!------------------------------------------------------------- #GROUP(%QuickSetRecordValidation) #ADD(%QuickTemplateInstance,ITEMS(%QuickTemplateInstance)+1) #SET(%QuickTemplateType,'RecordValidation') #SET(%QRVValidateOnAccept,%QuickFormValidateOnAccept) #SET(%QRVValidateOnNonStopSelect,%QuickFormValidateOnNonStopSelect) #IF(%QRVValidateOnAccept OR %QRVValidateOnNonStopSelect) #SET(%QuickTemplateProcProp,%True) #ENDIF #!------------------------------------------------------------- #GROUP(%QuickGenerateRecordValidation) [ADDITION] NAME Clarion RecordValidation [INSTANCE] INSTANCE %QuickTemplateInstance #IF(%QuickTemplateProcProp) PROCPROP #ENDIF [PROMPTS] %%ValidateOnAccept LONG (%QRVValidateOnAccept) %%ValidateOnNonStopSelect LONG (%QRVValidateOnNonStopSelect) %%ControlsExcluded MULTI LONG () %%ControlToExclude DEPEND %%ControlsExcluded STRING TIMES 0 #!-------------------------------------------------------------------------- #GROUP(%QuickDeclareOrderCWTab) #!------------------------------------------------------------- #GROUP(%QuickSetOrderCWTab) #ADD(%QuickTemplateInstance,ITEMS(%QuickTemplateInstance)+1) #SET(%QuickTemplateType,'OrderCWTab') #SET(%QuickTemplateProcProp,0) #SET(%QuickTemplateParent,0) #ADD(%QuickTemplateControl,'?ChangeOrder') #!------------------------------------------------------------- #GROUP(%QuickGenerateOrderCWTab) [ADDITION] NAME ToolCraft OrderCWTab [INSTANCE] INSTANCE %QuickTemplateInstance #!------------------------------------------------------------- #GROUP(%QuickDeclarePBOptionsExtension) #!-------------------------------------------------------------------------- #GROUP(%QuickSetPBOptionsExtension) #ADD(%QuickTemplateInstance,ITEMS(%QuickTemplateInstance)+1) #SET(%QuickTemplateType,'PBOptionsExtension') #SET(%QuickTemplateProcProp,0) #SET(%QuickTemplateParent,0) #!------------------------------------------------------------- #GROUP(%QuickGeneratePBOptionsExtension) [ADDITION] NAME ToolCraft PowerBrowseOptions [INSTANCE] INSTANCE %QuickTemplateInstance [PROMPTS] %%AlwaysMaximizeOnOpen LONG (0) %%SpecifyFirstField LONG (0) %%FirstFieldToSelect DEFAULT ('') %%EnableWindowResize LONG (0) %%ResizeListBox DEFAULT ('') %%EnableSecondaryResize LONG (0) %%SecondaryResizeListBox DEFAULT ('') #!------------------------------------------------------------- #GROUP(%PopulateControlTemplate) #CASE(%QuickTemplateType) #OF('ASCIIBox') #OF('ASCIIPrintButton') #OF('ASCIISearchButton') #OF('BrowseBox') LIST,AT(%WindowControlXOffset,%WindowControlYOffset,%WindowControlWidth,%WindowControlHeight),USE(%QuickTemplateControl),MSG('Browsing Records'),IMM,HVSCROLL,| FORMAT('%'QBBFormat'),| FROM(%QBBFrom),#SEQ(%QuickTemplateInstance),#ORIG(?List),#FIELDS(%QBBFields) #OF('OrderCWTab') #SUSPEND #?SHEET,AT(%DefaultXOffset,%DefaultYOffset,%WorksheetWidth,%WorksheetHeight),USE(?ChangeOrder),#ORIG(?ChangeOrder),#SEQ(%QuickTemplateInstance) #FOR(%WindowLayerID),WHERE(%WindowLayerID =< %HighestUserLevel AND %WindowLayerID > %LayerPreSheet) TAB('%WindowLayerTabText'),#SEQ(%QuickTemplateInstance) #INSERT(%ConstructWindowLayer) END #ENDFOR #?END #RESUME #OF('BrowseSelectButton') BUTTON('%DefaultSelectControlText'),AT(%WindowControlXOffset,%WindowControlYOffset,%WindowControlWidth,%WindowControlHeight),USE(%WindowControl),#SEQ(%QuickTemplateInstance),#ORIG(?Select) #OF('BrowseUpdateButton') #CASE(SUB(%WindowControl,1,7)) #OF('?Insert') BUTTON('%DefaultInsertControlText'),AT(%WindowControlXOffset,%WindowControlYOffset,%WindowControlWidth,%WindowControlHeight),USE(%WindowControl),#SEQ(%QuickTemplateInstance),#ORIG(?Insert),#LINK(?Change:%QuickTemplateInstance) #OF('?Change') #IF(%UpdateButtonDefault) BUTTON('%DefaultChangeControlText'),AT(%WindowControlXOffset,%WindowControlYOffset,%WindowControlWidth,%WindowControlHeight),USE(%WindowControl),DEFAULT,#SEQ(%QuickTemplateInstance),#ORIG(?Change),#LINK(?Delete:%QuickTemplateInstance) #ELSE BUTTON('%DefaultChangeControlText'),AT(%WindowControlXOffset,%WindowControlYOffset,%WindowControlWidth,%WindowControlHeight),USE(%WindowControl),#SEQ(%QuickTemplateInstance),#ORIG(?Change),#LINK(?Delete:%QuickTemplateInstance) #ENDIF #OF('?Delete') BUTTON('%DefaultDeleteControlText'),AT(%WindowControlXOffset,%WindowControlYOffset,%WindowControlWidth,%WindowControlHeight),USE(%WindowControl),#SEQ(%QuickTemplateInstance),#ORIG(?Delete),#LINK(?Insert:%QuickTemplateInstance) #ENDCASE #OF('CancelButton') BUTTON('%DefaultCancelControlText'),AT(%WindowControlXOffset,%WindowControlYOffset,%WindowControlWidth,%WindowControlHeight),USE(%WindowControl),#SEQ(%QuickTemplateInstance),#ORIG(%WindowControl) #OF('CloseButton') BUTTON('%DefaultCloseControlText'),AT(%WindowControlXOffset,%WindowControlYOffset,%WindowControlWidth,%WindowControlHeight),USE(%WindowControl),#SEQ(%QuickTemplateInstance),#ORIG(%WindowControl) #OF('DOSFileLookup') #OF('FieldLookupButton') BUTTON('...'),AT(%WindowControlXOffset,%WindowControlYOffset,%DefaultControlHeight,%DefaultControlHeight),USE(%WindowControl) #OF('SaveButton') BUTTON('%DefaultOKControlText'),AT(%WindowControlXOffset,%WindowControlYOffset,%WindowControlWidth,%WindowControlHeight),USE(%WindowControl),DEFAULT,#SEQ(%QuickTemplateInstance),#ORIG(%WindowControl) #ENDCASE #! #! #! #! #!-------------------------------------------------------------------------- #! #!Replacement for WBROWSE.TPW #! #!-------------------------------------------------------------------------- #UTILITY(PowerBrowseWizard,'Create a new record browsing procedure'),WIZARD #! #SHEET #TAB('Power Browse Wizard') #IMAGE('ROLBRWS.BMP') #DISPLAY('This wizard will help you quickly create a new record browsing (Browse) procedure.'),AT(90,8,235,24) #DISPLAY('To begin creating your new Browse procedure, click Next.'),AT(90) #ENDTAB #TAB('Power Browse Wizard - Procedure Name'),WHERE(~%QuickProcedure) #IMAGE('CMPBRWS.BMP') #PROMPT('What name should be used as the label of this browse procedure?',@S100),%QuickBrowsePromptProcedureName,AT(90,23,235),PROMPTAT(90,8,235) #VALIDATE(%QuickBrowsePromptProcedureName,'You must supply a procedure name!') #ENDTAB #TAB('Power Browse Wizard - File Access'),FINISH(1) #IMAGE('WINBRWS1.BMP') #PROMPT('Which file do you want to browse?',FILE),%QuickBrowsePromptPrimaryFile,AT(90,23,235),PROMPTAT(90,8,235) #VALIDATE(%QuickBrowsePromptPrimaryFile,'You must supply a file to browse!') #ENDTAB #TAB('Power Browse Wizard - Key Sequence'),FINISH(1) #IMAGE('WINBRWS2.BMP') #DISPLAY('You can browse a file using a single record key or you can use all of the record keys declared for a file.'),AT(90,8,235,20) #DISPLAY('If you use all the keys, they will be placed on tab controls that change the sequence of records displayed in the list box.'),AT(90,,235,20) #PROMPT('&Browse using all record keys',CHECK),%QuickBrowsePromptKeyAccess,AT(90,,180),DEFAULT(1) #ENABLE(%QuickBrowsePromptKeyAccess = %False),CLEAR #PROMPT('&Access Key:',KEY(%QuickBrowsePromptPrimaryFile)),%QuickBrowsePromptPrimaryKey,PROMPTAT(90),AT(200,,125) #VALIDATE(%QuickBrowsePromptPrimaryKey,'You must supply a key to use to access the file!') #ENDENABLE #ENDTAB #TAB('Power Browse Wizard - Update Procedure'),FINISH(1) #IMAGE('WINBRWS3.BMP') #DISPLAY('The browse procedure can select a record to be processed by an update procedure. If you enter an update procedure, "Insert", "Change", and "Delete" buttons will be placed in the browse window.'),AT(90,8,235,24) #PROMPT('A&llow the user to update records',CHECK),%QuickBrowsePromptAllowUpdate,AT(90,,180,14),DEFAULT(1) #DISPLAY('You may use the default update procedure name, or you may specify your own procedure name. To use the default name, leave the Update Procedure blank.'),AT(90,,235,24) #ENABLE(%QuickBrowsePromptAllowUpdate) #PROMPT('&Update Procedure:',@S100),%QuickBrowsePromptUpdateProcedure,PROMPTAT(90),AT(200,,125) #ENDENABLE #ENDTAB #TAB('Power Browse Wizard - Child Files'),FINISH(1) #IMAGE('WINBRWS5.BMP') #DISPLAY('If this browse has one to many relations with any other files in the data dictionary, buttons can be provided to access the child files.'),AT(90,8,235,24) #PROMPT('&Provide buttons for child files',CHECK),%QuickBrowsePromptChildHandling,DEFAULT(1),AT(90,,180) #ENDTAB #TAB('Power Browse Wizard - Parent File Handling'),WHERE(%QuickBrowsePromptKeyAccess = %False),FINISH(1) #IMAGE('WINBRWS.BMP') #DISPLAY('If the Record Key that you specified to use as the Access Key is the key used in a Many:1 relation, (In other words, this file is a child of another file) how do you want the selection of the parent record to take place?'),AT(90,8,235,24) #PROMPT('&Parent Record Selection:',OPTION),%QuickBrowsePromptParentHandling,DEFAULT('Select parent record via button'),AT(90,40,235) #PROMPT('Do not select by parent record',RADIO),AT(100,,140) #PROMPT('Select parent record via button',RADIO),AT(100,,140) #PROMPT('Assume that the parent record is active',RADIO),AT(100,,140) #ENDTAB #TAB('Power Browse Wizard - Select Button'),FINISH(1) #IMAGE('WINBRWS6.BMP') #DISPLAY('A browse procedure can be used to lookup a record for an entry field. If used for this purpose, the browse window should include a "Select" button.'),AT(90,8,235,24) #PROMPT('&Provide a "Select" button',CHECK),%QuickBrowsePromptSelectButton,DEFAULT(1),AT(90,,180) #ENDTAB #TAB('Power Browse Wizard - Finally...') #IMAGE('CMPBRWS.BMP') #DISPLAY('If you are creating new procedures with names that already exist in your application, the old procedures can be overwritten or the new procedures can be suppressed.'),AT(90,8,235,24) #PROMPT('Overwrite existing procedures',CHECK),%QuickBrowsePromptOverwriteAll,AT(90,,235),DEFAULT(0) #IMAGE('<255,1,4,127>'),AT(90,55) #DISPLAY('The browse procedure will always be overwritten by the browse wizard!'),AT(125,54,200,20) #ENDTAB #ENDSHEET #! #INSERT(%DeclareSymbols) #! #IF(%QuickProcedure) #SET(%ValueConstruct,%QuickProcedure) #ELSE #SET(%ValueConstruct,%QuickBrowsePromptProcedureName) #ENDIF #SET(%ReplaceExistingProcedures,%QuickBrowsePromptOverwriteAll) #ADD(%ProcedureList,%ValueConstruct) #SET(%QuickProcedurePrimary,%QuickBrowsePromptPrimaryFile) #SET(%QuickProcedureType,'ToolCraft PowerBrowse') #SET(%QuickProcedureDescription,'Browse the ' & %QuickProcedurePrimary & ' File') #SET(%QuickProcedurePrimaryKey,%QuickBrowsePromptPrimaryKey) #SET(%QuickProcedureWindow,%True) #IF(%QuickBrowsePromptAllowUpdate) #IF(%QuickBrowsePromptUpdateProcedure) #SET(%QuickBrowseUpdateProcedure,%QuickBrowsePromptUpdateProcedure) #ELSE #SET(%QuickBrowseUpdateProcedure,'Update' & %QuickProcedurePrimary) #ENDIF #ENDIF #SET(%QuickBrowseUpdatePopupMenu,%False) #SET(%QuickBrowseChildHandling,%QuickBrowsePromptChildHandling) #SET(%QuickBrowseParentHandling,%QuickBrowsePromptParentHandling) #SET(%QuickBrowseSelectButton,%QuickBrowsePromptSelectButton) #! #! #INSERT(%GenerateProcedures) #! #!------------------------------------------------------------- #GROUP(%QuickBrowseDeclarations) #DECLARE(%QuickBrowseUpdateProcedure,%ProcedureList) #DECLARE(%QuickBrowseUpdatePopupMenu,%ProcedureList) #DECLARE(%QuickBrowseCreateUpdate,%ProcedureList) #DECLARE(%QuickBrowseChildHandling,%ProcedureList) #DECLARE(%QuickBrowseParentHandling,%ProcedureList) #DECLARE(%QuickBrowseSelectButton,%ProcedureList) #DECLARE(%QuickBrowseOrderCWTab,%ProcedureList) #DECLARE(%QuickBrowseListCount,%ProcedureList) #! #DECLARE(%PrimaryBrowseInstance) #DECLARE(%WorksheetLowerEdge) #DECLARE(%WorksheetUpperEdge) #!-------------------------------------------------------- #GROUP(%ConstructQuickBrowse) #MESSAGE('Determining Secondary Procedures',3) #CASE(%QuickProcedureDefault) #OF('Primary Browse') #INSERT(%PrimaryBrowseDefaults) #OF('Secondary Browse') #INSERT(%SecondaryBrowseDefaults) #OF('Select Browse') #INSERT(%SelectBrowseDefaults) #ENDCASE #IF(%QuickBrowseChildHandling) #FIX(%File,%QuickProcedurePrimary) #FOR(%Relation),WHERE(%FileRelationType = '1:MANY') #IF(%FileKey AND %RelationKey) #SET(%ValueConstruct,%Relation) #INSERT(%AddSecondaryBrowse,%RelationKey) #FIX(%File,%QuickProcedurePrimary) #FIX(%Relation,%ValueConstruct) #FIX(%ProcedureList,%CurrentProcedure) #ENDIF #ENDFOR #ENDIF #FIX(%ProcedureList,%CurrentProcedure) #FIX(%File,%QuickProcedurePrimary) #IF(%QuickBrowseParentHandling = 'Select parent record via button') #FOR(%Relation),WHERE(%FileRelationType='MANY:1') #IF(%QuickProcedurePrimaryKey AND %FileKey <> %QuickProcedurePrimaryKey) #CYCLE #ELSIF(NOT %FileKey) #CYCLE #ENDIF #SET(%ValueConstruct,%Relation) #INSERT(%AddSelectBrowse,%Relation) #FIX(%File,%QuickProcedurePrimary) #FIX(%Relation,%ValueConstruct) #FIX(%ProcedureList,%CurrentProcedure) #ENDFOR #ENDIF #FIX(%ProcedureList,%CurrentProcedure) #IF(%QuickBrowseUpdateProcedure) #INSERT(%AddUpdateProcedure,%QuickProcedurePrimary,%QuickBrowseUpdateProcedure) #FIX(%ProcedureList,%CurrentProcedure) #ENDIF #! #!Delete adding of CurrentTab variable #!#ADD(%ProcedureDataItemID,ITEMS(%ProcedureDataItemID)+1) #!SET(%ProcedureDataItem,'CurrentTab') #!SET(%ProcedureDataItemType,'STRING(80)') #! #MESSAGE('Determining Window Size',3) #ADD(%WindowLayerID,%LayerPreSheet) #FIX(%ProcedureList,%CurrentProcedure) #SET(%WorksheetHeight,%MaximumSheetHeight) #SET(%WorksheetWidth,0) #FIX(%FileList,%QuickProcedurePrimary) #INSERT(%QuickSetBrowseBox,%QuickProcedurePrimary,0,%QuickProcedurePrimaryKey,%QuickBrowseUpdateProcedure) #SET(%PrimaryBrowseInstance,%QuickTemplateInstance) #ADD(%WindowControlID,ITEMS(%WindowControlID)+1) #SET(%WindowControl,%QuickTemplateControl) #SET(%WindowControlXOffset,2 * %DefaultXOffset) #SET(%WindowControlYOffset,2 * %DefaultYOffset) #IF(%QuickBrowseUpdateProcedure) #SET(%WorksheetWidth,%WorksheetWidth + (3 * %DefaultButtonWidth) + (4 * %DefaultXOffset)) #ENDIF #IF(%QuickBrowseSelectButton) #SET(%WorksheetWidth,%WorksheetWidth + %DefaultButtonWidth + %DefaultXOffset) #ENDIF #IF(%QuickBrowseParentHandling = 'Select parent record via button' AND %QBBParentFound) #SET(%WorksheetWidth,%WorksheetWidth + %DefaultButtonWidth + %DefaultXOffset) #ENDIF #IF(%WorksheetWidth) #SET(%WindowControlHeight,%WorksheetHeight - ((3 * %DefaultYOffset) + %DefaultButtonHeight)) #ELSE #SET(%WindowControlHeight,%WorksheetHeight - %DefaultYOffset) #ENDIF #IF(%QBBWidth > %WorksheetWidth) #SET(%WorksheetWidth,%QBBWidth) #ENDIF #IF(%WorksheetWidth > %MaximumSheetWidth) #SET(%WorksheetWidth,%MaximumSheetWidth) #ELSIF(%WorksheetWidth < %MinimumsheetWidth) #SET(%WorksheetWidth,%MinimumSheetWidth) #ENDIF #SET(%WindowControlWidth,%WorksheetWidth - (2 * %DefaultYOffset)) #FREE(%RelationList) #SET(%RelationRows,0) #SET(%RelationCols,0) #IF(%QuickBrowseChildHandling) #FIX(%File,%QuickProcedurePrimary) #FOR(%Relation),WHERE(%FileRelationType = '1:MANY') #IF(%FileKey AND %RelationKey) #ADD(%Relationlist,%Relation) #SET(%RelationCols,%RelationCols + 1) #IF(%RelationCols = %MaximumRelationCols) #SET(%RelationCols,0) #ENDIF #IF(%RelationCols = 0) #SET(%RelationRows,%RelationRows + 1) #ENDIF #ENDIF #ENDFOR #ENDIF #SET(%WindowWidth,%WorksheetWidth + (2 * %DefaultXOffset)) #SET(%WindowHeight,%WorksheetHeight + (3 * %DefaultYOffset) + %DefaultButtonHeight) #IF(%RelationRows AND NOT %RelationCols) #SET(%RelationRows,%RelationRows-1) #SET(%RelationCols,4) #ENDIF #IF(%RelationRows) #SET(%WindowHeight,%WindowHeight + (%RelationRows * (%DefaultYOffset + %DefaultButtonHeight))) #SET(%ValueConstruct,6) #ELSE #SET(%ValueConstruct,%RelationCols + 2) #ENDIF #SET(%HoldConstruct,(%ValueConstruct * %DefaultButtonWidth) + ((%ValueConstruct + 1) * %DefaultXOffset)) #IF(%HoldConstruct > %WindowWidth) #SET(%ValueConstruct,%HoldConstruct - %WindowWidth) #SET(%WindowWidth,%HoldConstruct) #SET(%WorksheetWidth,%WindowWidth - (2 * %DefaultYOffset)) #SET(%WindowControlWidth,%WorksheetWidth - (2 * %DefaultYOffset)) #ENDIF #SET(%ValueConstruct,0) #IF(%QuickBrowseUpdateProcedure) #SET(%ValueConstruct,3) #ENDIF #IF(%QuickBrowseSelectButton) #SET(%ValueConstruct,%ValueConstruct + 1) #ENDIF #FIND(%QuickTemplateInstance,%PrimaryBrowseInstance) #SET(%CurrentX,(%WindowControlXOffset + %WindowControlWidth) - ((%ValueConstruct * %DefaultButtonWidth) + ((%ValueConstruct - 1) * %DefaultXOffset))) #SET(%CurrentY,%WindowControlYOffset + %WindowControlHeight + %DefaultYOffset) #IF(%QuickBrowseOrderCWTab) #SET(%HoldConstruct,%QuickTemplateInstance) #INSERT(%QuickSetOrderCwTab) #SELECT(%QuickTemplateControl,1) #ADD(%WindowControlID,ITEMS(%WindowControlID)+1) #SET(%WindowControl,%QuickTemplateControl) #SET(%WindowControlXOffset,%DefaultXOffset) #SET(%WindowControlYOffset,%DefaultYOffset) #SET(%WindowControlHeight,%WorkSheetHeight) #SET(%WindowControlWidth,%WorkSheetWidth) #FIX(%QuickTemplateInstance,%HoldConstruct) #ENDIF #IF(%QuickBrowseSelectButton) #INSERT(%QuickSetBrowseSelectButton) #SELECT(%QuickTemplateControl,1) #ADD(%WindowControlID,ITEMS(%WindowControlID)+1) #SET(%WindowControl,%QuickTemplateControl) #SET(%WindowControlXOffset,%CurrentX) #SET(%WindowControlYOffset,%CurrentY) #SET(%WindowControlHeight,%DefaultButtonHeight) #SET(%WindowControlWidth,%DefaultButtonWidth) #SET(%CurrentX,%CurrentX + %DefaultXOffset + %DefaultButtonWidth) #ENDIF #IF(%QuickBrowseUpdateProcedure) #FIND(%QuickTemplateInstance,%PrimaryBrowseInstance) #INSERT(%QuickSetBrowseUpdateButton,%QuickBrowseUpdatePopupMenu,%True) #FOR(%QuickTemplateControl) #ADD(%WindowControlID,ITEMS(%WindowControlID)+1) #SET(%WindowControl,%QuickTemplateControl) #SET(%WindowControlXOffset,%CurrentX) #SET(%WindowControlYOffset,%CurrentY) #SET(%WindowControlHeight,%DefaultButtonHeight) #SET(%WindowControlWidth,%DefaultButtonWidth) #SET(%CurrentX,%CurrentX + %DefaultXOffset + %DefaultButtonWidth) #ENDFOR #ENDIF #FIND(%QuickTemplateInstance,%PrimaryBrowseInstance) #IF(ITEMS(%QBBKeyList)) #FOR(%QBBKeyList) #FIX(%KeyListID,%QBBKeyListID) #ADD(%WindowLayerID,ITEMS(%WindowLayerID)+1) #SET(%WindowLayerTabText,%KeyListTab) #SET(%CurrentY,%WorksheetHeight - %DefaultButtonHeight) #IF(%QuickBrowseParentHandling = 'Select parent record via button') #IF(%QBBRangeFile) #ADD(%WindowControlID,ITEMS(%WindowControlID)+1) #SET(%WindowControl,'?Select' & %QBBRangeFile) #SET(%ValueConstruct,%WorksheetWidth - (2 * %DefaultXOffset)) #IF(%QuickBrowseSelectButton) #SET(%ValueConstruct,%ValueConstruct - (%DefaultXOffset + %DefaultButtonWidth)) #ENDIF #IF(%QuickBrowseUpdateProcedure) #SET(%ValueConstruct,%ValueConstruct - (3 * (%DefaultXOffset + %DefaultButtonWidth))) #ENDIF #IF(%ValueConstruct > (2 * %DefaultButtonWidth) + %DefaultXOffset) #SET(%ValueConstruct,'Select ' & %QBBRangeFile) #SET(%WindowControlWidth,(2 * %DefaultButtonWidth) + %DefaultXOffset) #ELSE #IF(LEN(%QBBRangeFile) > 12) #SET(%ValueConstruct,SUB(%QBBRangeFile,1,9) & '...') #ELSE #SET(%ValueConstruct,%QBBRangeFile) #ENDIF #SET(%WindowControlWidth,%DefaultButtonWidth) #ENDIF #SET(%WindowControlStatement,'BUTTON(''' & %ValueConstruct & ''')') #SET(%WindowControlXOffset,2 * %DefaultXOffset) #SET(%WindowControlYOffset,%CurrentY) #SET(%WindowControlHeight,%DefaultButtonHeight) #ADD(%ButtonControlID,ITEMS(%ButtonControlID)+1) #SET(%ButtonControl,%WindowControl) #SET(%ButtonAction,'Call a Procedure') #SET(%ButtonProcedure,'Select' & %QBBRangeFile) #SET(%ButtonThread,'0') #SET(%ButtonThreadStack,'025000') #SET(%ButtonRequest,'Select') #ENDIF #ENDIF #ENDFOR #ELSE #ADD(%WindowLayerID,ITEMS(%WindowLayerID)+1) #SET(%WindowLayerTabText,'Record Order') #ENDIF #SET(%TabLineCount,1) #SET(%CurrentTabLineLength,0) #SET(%CurrentTabLength,0) #FOR(%WindowLayerID) #IF(INSTRING('&',%WindowLayerTabText,1,1)) #SET(%CurrentTabLength,(LEN(%WindowLayerTabText) * 4)) #ELSE #SET(%CurrentTabLength,((LEN(%WindowLayerTabText) - 1) * 4)) #ENDIF #IF(%CurrentTabLength < %MinimumTabLength) #SET(%CurrentTabLength,%MinimumTabLength) #ENDIF #SET(%CurrentTabLength,%CurrentTabLength + %TabTextOffset) #IF((%CurrentTabLength + %CurrentTabLineLength) > %WorksheetWidth) #SET(%TabLineCount,%TabLineCount + 1) #SET(%CurrentTabLineLength,%CurrentTabLength) #ELSE #SET(%CurrentTabLineLength,%CurrentTabLineLength + %CurrentTabLength) #ENDIF #IF(%WindowLayerTopOffset > %MaximumTopOffset) #SET(%MaximumTopOffset,%WindowLayerTopOffset) #ENDIF #ENDFOR #SET(%InitialSheetYOffset,(%TabLineVerticalOffset * %TabLineCount) + %TabDefaultVerticalOffset) #SET(%WorksheetHeight,%MaximumSheetHeight + %InitialSheetYOffset) #FOR(%WindowLayerID) #FOR(%WindowControlID) #SET(%WindowControlYOffset,%WindowControlYOffset + %InitialSheetYOffset) #ENDFOR #ENDFOR #SET(%ValueConstruct,%WorkSheetHeight - %MaximumSheetHeight) #SET(%WindowHeight,%WindowHeight + %ValueConstruct) #ADD(%WindowLayerID,%LayerWindow) #SET(%CurrentY,%WindowHeight - (%DefaultYOffset + %DefaultButtonHeight)) #SET(%CurrentX,%DefaultXOffset) #FIX(%FileList,%QuickProcedurePrimary) #IF(ITEMS(%RelationList)) #SET(%CurrentY,%CurrentY - (%RelationRows * ((%DefaultYOffset + %DefaultButtonHeight)))) #FOR(%RelationList) #ADD(%WindowControlID,ITEMS(%WindowControlID)+1) #SET(%WindowControl,'?Browse' & %RelationList) #IF(LEN(%RelationList) > 12) #SET(%ValueConstruct,SUB(%RelationList,1,9) & '...') #ELSE #SET(%ValueConstruct,%RelationList) #ENDIF #SET(%WindowControlStatement,'BUTTON(''' & %ValueConstruct & ''')') #SET(%WindowControlXOffset,%CurrentX) #SET(%WindowControlYOffset,%CurrentY) #SET(%WindowControlHeight,%DefaultButtonHeight) #SET(%WindowControlWidth,%DefaultButtonWidth) #ADD(%ButtonControlID,ITEMS(%ButtonControlID)+1) #SET(%ButtonControl,%WindowControl) #SET(%ButtonAction,'Call a Procedure') #FIX(%Relation,%RelationList) #SET(%ButtonProcedure,'Browse' & %RelationKey) #SET(%ButtonThread,'0') #SET(%ButtonThreadStack,'025000') #SET(%RelationCols,%RelationCols - 1) #IF(%RelationCols = 0) #SET(%CurrentY,%CurrentY + %DefaultYOffset + %DefaultButtonHeight) #SET(%CurrentX,%DefaultXOffset) #SET(%RelationCols,4) #ELSE #SET(%CurrentX,%CurrentX + %DefaultXOffset + %DefaultButtonWidth) #ENDIF #ENDFOR #ENDIF #SET(%CurrentX,%WindowWidth - (2 * (%DefaultXOffset + %DefaultButtonWidth))) #SET(%CurrentY,%WindowHeight - (%DefaultButtonHeight + %DefaultYOffset)) #INSERT(%QuickSetCloseButton) #SELECT(%QuickTemplateControl,1) #ADD(%WindowControlID,ITEMS(%WindowControlID)+1) #SET(%WindowControl,%QuickTemplateControl) #SET(%WindowControlXOffset,%CurrentX) #SET(%WindowControlYOffset,%CurrentY) #SET(%WindowControlHeight,%DefaultButtonHeight) #SET(%WindowControlWidth,%DefaultButtonWidth) #SET(%CurrentX,%CurrentX + %DefaultXOffset + %defaultButtonWidth) #ADD(%WindowControlID,ITEMS(%WindowControlID)+1) #SET(%WindowControl,'?Help') #SET(%WindowControlStatement,'BUTTON(''' & %DefaultHelpControlText & '''),STD(STD:Help)') #SET(%WindowControlXOffset,%CurrentX) #SET(%WindowControlYOffset,%CurrentY) #SET(%WindowControlHeight,%DefaultButtonHeight) #SET(%WindowControlWidth,%DefaultButtonWidth) #! #! #! #! #!-------------------------------------------------------------------------- #! #!Replacement for WFORM.TPW #! #!-------------------------------------------------------------------------- #UTILITY(FormWizard,'Create a New Record Update (Form) Procedure'),WIZARD #! #SHEET #TAB('Form Wizard') #IMAGE('PPRFORM.BMP') #DISPLAY('This wizard will help you quickly create a new record update (Form) procedure.'),AT(90,8,235,24) #DISPLAY('To begin creating your new Form procedure, click Next.'),AT(90) #ENDTAB #TAB('Form Wizard - Procedure Name'),WHERE(~%QuickProcedure) #IMAGE('CMPFORM.BMP') #PROMPT('What name should be used as the label of this form procedure?',@S100),%QuickFormPromptProcedureName,AT(90,23,235),PROMPTAT(90,8,235) #VALIDATE(%QuickFormPromptProcedureName,'You must supply a procedure name!') #ENDTAB #TAB('Form Wizard - File Access'),FINISH(1) #IMAGE('WINFORM1.BMP') #PROMPT('Which file do you want the form to update?',FILE),%QuickFormPromptPrimaryFile,AT(90,23,235),PROMPTAT(90,8,235) #VALIDATE(%QuickFormPromptPrimaryFile,'You must supply a file to update!') #ENDTAB #TAB('Form Wizard - Updating Records'),FINISH(1) #IMAGE('WINFORM1.BMP') #DISPLAY('A form procedure can insert a new record, change the data in a record, or delete a record from the file. Any of these can be disabled.'),AT(90,8,235,25) #PROMPT('Allow Records To Be Added',CHECK),%QuickFormPromptAllowInsert,DEFAULT(1),AT(90,,235) #PROMPT('Allow Records To Be Modified',CHECK),%QuickFormPromptAllowChange,DEFAULT(1),AT(90,,235) #PROMPT('Allow Records To Be Deleted',CHECK),%QuickFormPromptAllowDelete,DEFAULT(1),AT(90,,235) #ENDTAB #TAB('Form Wizard - Messages'),FINISH(1) #IMAGE('WINFORM1.BMP') #DISPLAY('This form procedure will be called from a button, menu, or key that requests that a record be inserted, changed, or deleted. A message will be displayed to describe the action requested.'),AT(90,8,235,25) #ENABLE(%QuickFormPromptAllowInsert) #PROMPT('Insert Message:',@S40),%QuickFormPromptInsertMessage,DEFAULT('Record Will Be Added'),PROMPTAT(90),AT(200,,125) #ENDENABLE #ENABLE(%QuickFormPromptAllowChange) #PROMPT('Change Message:',@S40),%QuickFormPromptChangeMessage,DEFAULT('Record Will Be Changed'),PROMPTAT(90),AT(200,,125) #ENDENABLE #ENABLE(%QuickFormPromptAllowDelete) #PROMPT('Delete Message:',@S40),%QuickFormPromptDeleteMessage,DEFAULT('Record Will Be Deleted'),PROMPTAT(90),AT(200,,125) #ENDENABLE #PROMPT('Where do you want this message to be displayed?',DROP('Title Bar|Status Bar')),%QuickFormPromptMessageLocation,DEFAULT('Title Bar'),AT(90,88,235),PROMPTAT(90,78,235) #ENDTAB #TAB('Form Wizard - Active Record Display'),FINISH(1) #IMAGE('WINFORM2.BMP') #PROMPT('A field can be displayed in the title bar that identifies the active record.',FIELD(%QuickFormPromptPrimaryFile)),%QuickFormPromptAppendToTitleID,AT(90,23,235),PROMPTAT(90,8,235,30) #ENDTAB #TAB('Form Wizard - Record Validation'),FINISH(1) #IMAGE('WINFORM3.BMP') #DISPLAY('The data dictionary contains validation rules for the fields used in this form procedure. These rules can be ignored, they can be enforced when each field is entered, or they can be enforced after the entire window is completed.'),AT(90,8,235,24) #PROMPT('Validate field values whenever field value changes?',CHECK),%QuickFormPromptValidateOnAccept,DEFAULT(1),AT(90,,235) #PROMPT('Validate field values when the OK button is pressed?',CHECK),%QuickFormPromptValidateOnNonStopSelect,DEFAULT(1),AT(90,,235) #ENDTAB #TAB('Form Wizard - Child File Handling'),FINISH(1) #IMAGE('WINFORM4.BMP') #DISPLAY('If this file has one:many relationships with other files in the data dictionary, list boxes can be generated to browse the child files. These list boxes can be placed on tabs, or they can be accessed with push buttons.'),AT(90,8,235,24) #PROMPT('&Browsing Child Files',OPTION),%QuickFormPromptChildHandling,DEFAULT('Place children on tabs'),AT(90,40,235) #PROMPT('&Place children on tabs',RADIO),AT(100) #PROMPT('&Access children with push button',RADIO),AT(100) #PROMPT('&Do not provide child access',RADIO),AT(100) #ENDTAB #TAB('Form Wizard - Finally...') #IMAGE('WINFORM.BMP') #DISPLAY('If you are creating new procedures with names that already exist in your application, the old procedures can be overwritten or the new procedures can be suppressed.'),AT(90,8,235,24) #PROMPT('Overwrite existing procedures',CHECK),%QuickFormPromptOverwriteAll,AT(90,,235),DEFAULT(0) #IMAGE('<255,1,4,127>'),AT(90,55) #DISPLAY('The form procedure will always be overwritten by the form wizard!'),AT(125,54,200,20) #ENDTAB #ENDSHEET #! #INSERT(%DeclareSymbols) #! #IF(%QuickProcedure) #SET(%ValueConstruct,%QuickProcedure) #ELSE #SET(%ValueConstruct,%QuickFormPromptProcedureName) #ENDIF #SET(%ReplaceExistingProcedures,%QuickFormPromptOverwriteAll) #ADD(%ProcedureList,%ValueConstruct) #SET(%QuickProcedurePrimary,%QuickFormPromptPrimaryFile) #SET(%QuickProcedureType,'Clarion Form') #SET(%QuickProcedureDescription,'Update the ' & %QuickProcedurePrimary & ' File') #SET(%QuickProcedureWindow,%True) #SET(%QuickFormAllowInsert,%QuickFormPromptAllowInsert) #SET(%QuickFormAllowChange,%QuickFormPromptAllowChange) #SET(%QuickFormAllowDelete,%QuickFormPromptAllowDelete) #SET(%QuickFormInsertMessage,%QuickFormPromptInsertMessage) #SET(%QuickFormChangeMessage,%QuickFormPromptChangeMessage) #SET(%QuickFormDeleteMessage,%QuickFormPromptDeleteMessage) #SET(%QuickFormMessageLocation,%QuickFormPromptMessageLocation) #SET(%QuickFormAppendToTitleID,%QuickFormPromptAppendToTitleID) #SET(%QuickFormValidateOnAccept,%QuickFormPromptValidateOnAccept) #SET(%QuickFormValidateOnNonStopSelect,%QuickFormPromptValidateOnNonStopSelect) #CASE(%QuickFormPromptChildHandling) #OF('Place children on tabs') #SET(%QuickFormChildHandling,'Tabbed Browses') #OF('Access children with push button') #SET(%QuickFormChildHandling,'Push Button Access') #ELSE #SET(%QuickFormChildHandling,'None') #ENDCASE #! #INSERT(%GenerateProcedures) #! #!------------------------------------------------------------- #GROUP(%QuickFormDeclarations) #DECLARE(%QuickFormPrimaryFile,%ProcedureList) #DECLARE(%QuickFormAllowInsert,%ProcedureList) #DECLARE(%QuickFormAllowChange,%ProcedureList) #DECLARE(%QuickFormAllowDelete,%ProcedureList) #DECLARE(%QuickFormInsertMessage,%ProcedureList) #DECLARE(%QuickFormChangeMessage,%ProcedureList) #DECLARE(%QuickFormDeleteMessage,%ProcedureList) #DECLARE(%QuickFormMessageLocation,%ProcedureList) #DECLARE(%QuickFormAppendToTitleID,%ProcedureList) #DECLARE(%QuickFormValidateOnAccept,%ProcedureList) #DECLARE(%QuickFormValidateOnNonStopSelect,%ProcedureList) #DECLARE(%QuickFormChildHandling,%ProcedureList) #DECLARE(%QuickFormCreateChildrenProcedures,%ProcedureList) #DECLARE(%QuickFormNewPage,%ProcedureList) #!-------------------------------------------------------- #GROUP(%ConstructQuickForm) #MESSAGE('Determining Secondary Procedures',3) #CASE(%QuickProcedureDefault) #OF('Update Form') #INSERT(%UpdateFormDefaults) #ENDCASE #IF(%QuickFormChildHandling <> 'None') #FIX(%File,%QuickProcedurePrimary) #FOR(%Relation),WHERE(%FileRelationType = '1:MANY') #IF(%FileKey AND %RelationKey) #SET(%ValueConstruct,%Relation) #IF(%QuickFormChildHandling = 'Push Button Access') #INSERT(%AddSecondaryBrowse,%RelationKey) #ELSIF(%QuickFormChildHandling = 'Tabbed Browses') #INSERT(%AddUpdateProcedure,%Relation,'') #ENDIF #FIX(%File,%QuickProcedurePrimary) #FIX(%Relation,%ValueConstruct) #FIX(%ProcedureList,%CurrentProcedure) #ENDIF #ENDFOR #ENDIF #FIX(%ProcedureList,%CurrentProcedure) #FIX(%FileList,%QuickProcedurePrimary) #FOR(%FieldListID) #IF(%FieldListLookup) #INSERT(%AddSelectBrowse,%FieldListLookup) #ENDIF #ENDFOR #FIX(%ProcedureList,%CurrentProcedure) #FIX(%FileList,%QuickProcedurePrimary) #FOR(%FieldListID) #IF(%FieldListLookup) #ADD(%QuickOtherFiles,%FieldListLookup) #ENDIF #ENDFOR #MESSAGE('Determining Window Size',3) #FIX(%ProcedureList,%CurrentProcedure) #ADD(%ProcedureDataItemID,ITEMS(%ProcedureDataItemID)+1) #SET(%ProcedureDataItem,'CurrentTab') #SET(%ProcedureDataItemType,'STRING(80)') #FIX(%FileList,%QuickProcedurePrimary) #SET(%WorksheetHeight,%MaximumSheetHeight) #SET(%WorksheetWidth,%FileListControlsWidth + (2 * %DefaultXOffset)) #IF(%WorksheetWidth > %MaximumSheetWidth) #SET(%WorksheetWidth,%MaximumSheetWidth) #ENDIF #SET(%WindowHeight,%WorksheetHeight + (3 * %DefaultYOffset) + %DefaultButtonHeight) #INSERT(%QuickSetRecordValidation) #SET(%RelationRows,0) #SET(%RelationCols,0) #SET(%WindowButtonRows,1) #SET(%WindowButtonColumns,2) #MESSAGE('Finding Relations',3) #IF(%QuickFormChildHandling = 'None') #SET(%WindowWidth,%WorksheetWidth + (2 * %DefaultXOffset)) #SET(%ValueConstruct,(%WindowButtonColumns * (%DefaultXOffset + %DefaultButtonHeight)) + %DefaultXOffset) #IF(%WindowWidth < %ValueConstruct) #SET(%WindowWidth,%ValueConstruct) #SET(%WorksheetWidth,%WindowWidth - (2 * %DefaultXOffset)) #ENDIF #ELSE #FIX(%File,%QuickProcedurePrimary) #FOR(%Relation),WHERE(%FileRelationType = '1:MANY') #IF(%FileKey AND %RelationKey) #ADD(%RelationList,%Relation) #SET(%RelationCols,%RelationCols + 1) #IF(%RelationCols = %MaximumRelationCols) #SET(%RelationCols,0) #ENDIF #IF(%RelationCols = 0) #SET(%RelationRows,%RelationRows + 1) #ENDIF #ENDIF #ENDFOR #IF(%RelationRows AND NOT %RelationCols) #SET(%RelationRows,%RelationRows - 1) #SET(%RelationCols,4) #ENDIF #IF(%QuickFormChildHandling = 'Tabbed Browses') #IF(ITEMS(%RelationList)) #SET(%WorksheetButtonColumns,3) #SET(%ValueConstruct,(%WorksheetButtonColumns * (%DefaultXOffset + %DefaultButtonWidth)) + %DefaultXOffset) #IF(%WorksheetWidth < %ValueConstruct) #SET(%WorksheetWidth,%ValueConstruct) #ENDIF #ENDIF #SET(%WindowWidth,%WorksheetWidth + (2 * %DefaultXOffset)) #FOR(%RelationList) #FIX(%FileList,%RelationList) #IF(NOT %FileList) #ADD(%FileList,%RelationList) #INSERT(%AccumulateFieldList,%FileList) #ENDIF #ENDFOR #ELSIF(%QuickFormChildHandling = 'Push Button Access') #IF(%RelationRows) #SET(%WindowHeight,%WindowHeight + (%RelationRows * (%DefaultYOffset + %DefaultButtonHeight))) #SET(%WindowButtonColumns,7) #ELSE #SET(%WindowButtonColumns,%RelationCols + 3) #ENDIF #SET(%ValueConstruct,(%WindowButtonColumns * (%DefaultXOffset + %DefaultButtonWidth) + %DefaultXOffset)) #IF(%ValueConstruct > %WindowWidth) #SET(%WindowWidth,%ValueConstruct) #ENDIF #IF(%WindowWidth > %WorksheetWidth + (2 * %DefaultXOffset)) #SET(%WorksheetWidth,%WindowWidth - (2 * %DefaultXOffset)) #ENDIF #ENDIF #ENDIF #SET(%ValueConstruct,(3 * %DefaultButtonWidth) + (4 * %DefaultXOffset)) #IF(%WindowWidth < %ValueConstruct) #SET(%WindowWidth,%ValueConstruct) #SET(%WorksheetWidth,%ValueConstruct - (2 * %DefaultXOffset)) #ENDIF #FIX(%FileList,%QuickProcedurePrimary) #FOR(%FileListTab) #SET(%CurrentTab,%FileListTab) #SET(%CurrentY,0) #SET(%InitializeTab,%True) #SET(%ContCounter,0) #FOR(%FieldListID),WHERE(%FieldListTab = %FileListTab) #IF(%FieldListLookup) #ADD(%EntryControlID,ITEMS(%EntryControlID)+1) #SET(%EntryControl,%FieldList) #SET(%PostLookupKey,%FieldListLookupKey) #SET(%PostLookupField,%FieldListLookupField) #SET(%PostLookupProcedure,'Select' & %FieldListLookup) #ENDIF #MESSAGE('Populating: ' & %FieldList,3) #IF(%FieldListCheckColumn) #SET(%CurrentY,%CurrentY - (%FieldListTotalHeight + %DefaultYOffset)) #ENDIF #IF(%FieldListTotalHeight + %CurrentY > %WorksheetHeight) #SET(%InitializeTab,%True) #SET(%ContCounter,%ContCounter + 1) #IF(%ContCounter > 1) #SET(%CurrentTab,%FileListTab & ' (cont. ' & %ContCounter & ' )') #ELSE #SET(%CurrentTab,%FileListTab & ' (cont.)') #ENDIF #ENDIF #IF(%InitializeTab) #ADD(%WindowLayerID,ITEMS(%WindowLayerID) + 1) #SET(%WindowLayerTabText,%CurrentTab) #SET(%CurrentY,2 * %DefaultYOffset) #ELSE #IF(%FieldListVerticalSpace) #SET(%CurrentY,%CurrentY + %DefaultYOffset) #ENDIF #ENDIF #ADD(%WindowControlID,ITEMS(%WindowControlID) + 1) #SET(%WindowControl,%FieldList) #SET(%WindowControlXOffset,(2 * %DefaultXOffset)) #SET(%WindowControlYOffset,%CurrentY) #IF(%FieldListTotalHeight = 'FULL') #SET(%WindowLayerTopOffset,%MinimumTextHeight) #ELSE #SET(%WindowLayerTopOffset,%WindowControlYOffset + %FieldListTotalHeight) #ENDIF #SET(%CurrentY,%WindowLayerTopOffset + %DefaultYOffset) #SET(%InitializeTab,%False) #ENDFOR #ENDFOR #IF(%QuickFormChildHandling = 'Tabbed Browses') #FOR(%RelationList) #MESSAGE('Populating: Browse on ' & %RelationList,3) #ADD(%WindowLayerID,ITEMS(%WindowLayerID) + 1) #SET(%WindowLayerTabText,%RelationList) #SET(%WindowLayerSpecialCase,'BROWSE') #FIX(%File,%QuickProcedurePrimary) #FIX(%Relation,%RelationList) #INSERT(%QuickSetBrowseBox,%Relation,0,%RelationKey,'Update' & %RelationList) #SET(%PrimaryBrowseInstance,%QuickTemplateInstance) #FOR(%QuickTemplateControl) #ADD(%WindowControlID,ITEMS(%WindowControlID) + 1) #SET(%WindowControl,%QuickTemplateControl) #SET(%WindowControlYOffset,(2 * %DefaultYOffset)) #SET(%WindowControlXOffset,(2 * %DefaultXOffset)) #SET(%WindowControlWidth,%WorksheetWidth - (2 * %DefaultXOffset)) #SET(%WindowControlHeight,%MinimumBrowseHeight - ((3 * %DefaultYOffset) + %DefaultButtonHeight)) #ENDFOR #INSERT(%QuickSetBrowseUpdateButton,1,%False) #SET(%QuickTemplateProcProp,%False) #SET(%CurrentX,%WorksheetWidth - ((3 * %DefaultButtonWidth) + (2 * %DefaultXOffset))) #SET(%CurrentY,%MinimumBrowseHeight - %DefaultButtonHeight) #FOR(%QuickTemplateControl) #ADD(%WindowControlID,ITEMS(%WindowControlID) + 1) #SET(%WindowControl,%QuickTemplateControl) #SET(%WindowControlYOffset,%CurrentY) #SET(%WindowControlXOffset,%CurrentX) #SET(%WindowControlWidth,%DefaultButtonWidth) #SET(%WindowControlHeight,%DefaultButtonHeight) #SET(%CurrentX,%CurrentX + %DefaultXOffset + %DefaultButtonWidth) #ENDFOR #SET(%WindowLayerTopOffset,%MinimumBrowseHeight) #ENDFOR #ENDIF #IF(%QuickFormChildHandling = 'Tabbed Browses' AND ITEMS(%RelationList)) #INSERT(%QuickSetPBOptionsExtension) #ENDIF #FIX(%FileList,%QuickProcedurePrimary) #SET(%TabLineCount,1) #SET(%CurrentTabLength,0) #SET(%CurrentTabLineLength,0) #SET(%MaximumTopOffset,0) #FOR(%WindowLayerID) #IF(INSTRING('&',%WindowLayerTabText,1,1)) #SET(%CurrentTabLength,(LEN(%WindowLayerTabText) * 4)) #ELSE #SET(%CurrentTabLength,((LEN(%WindowLayerTabText) - 1) * 4)) #ENDIF #IF(%CurrentTabLength < %MinimumTabLength) #SET(%CurrentTabLength,%MinimumTabLength) #ENDIF #SET(%CurrentTabLength,%CurrentTabLength + %TabTextOffset) #IF((%CurrentTabLength + %CurrentTabLineLength) > %WorksheetWidth) #SET(%TabLineCount,%TabLineCount + 1) #SET(%CurrentTabLineLength,%CurrentTabLength) #ELSE #SET(%CurrentTabLineLength,%CurrentTabLineLength + %CurrentTabLength) #ENDIF #IF(%WindowLayerTopOffset > %MaximumTopOffset) #SET(%MaximumTopOffset,%WindowLayerTopOffset) #ENDIF #ENDFOR #IF(%MaximumTopOffset > %MinimumBrowseHeight) #SET(%ValueConstruct,%MaximumTopOffset - %MinimumBrowseHeight) #FOR(%WindowLayerID),WHERE(%WindowLayerSpecialCase = 'BROWSE') #FOR(%WindowControlID) #IF(INSTANCE(%WindowControlID) = 1) #SET(%WindowControlHeight,%WindowControlHeight + %ValueConstruct) #ELSE #SET(%WindowControlYOffset,%WindowControlYOffset + %ValueConstruct) #ENDIF #ENDFOR #ENDFOR #ENDIF #SET(%InitialSheetYOffset,(%TabLineVerticalOffset * %TabLineCount) + %TabDefaultVerticalOffset) #SET(%WorksheetHeight,%MaximumTopOffset + %InitialSheetYOffset) #FOR(%WindowLayerID) #FOR(%WindowControlID) #SET(%WindowControlYOffset,%WindowControlYOffset + %InitialSheetYOffset) #ENDFOR #ENDFOR #SET(%ValueConstruct,%WorkSheetHeight - %MaximumSheetHeight) #SET(%WindowHeight,%WindowHeight + %ValueConstruct) #ADD(%WindowLayerID,%LayerWindow) #SET(%CurrentY,%WindowHeight - (%DefaultYOffset + %DefaultButtonHeight)) #SET(%CurrentX,%DefaultXOffset) #IF(%QuickFormChildHandling = 'Push Button Access') #FIX(%File,%QuickProcedurePrimary) #IF(ITEMS(%RelationList)) #SET(%CurrentY,%CurrentY - (%RelationRows * ((%DefaultYOffset + %DefaultButtonHeight)))) #FOR(%RelationList) #FIX(%Relation,%RelationList) #MESSAGE('Populating: ?Browse' & %RelationKey,3) #ADD(%WindowControlID,ITEMS(%WindowControlID)+1) #SET(%WindowControl,'?Browse' & %RelationKey) #IF(LEN(%RelationList) > 12) #SET(%ValueConstruct,SUB(%RelationList,1,9) & '...') #ELSE #SET(%ValueConstruct,%RelationList) #ENDIF #SET(%WindowControlStatement,'BUTTON(''' & %ValueConstruct & ''')') #SET(%WindowControlXOffset,%CurrentX) #SET(%WindowControlYOffset,%CurrentY) #SET(%WindowControlHeight,%DefaultButtonHeight) #SET(%WindowControlWidth,%DefaultButtonWidth) #ADD(%ButtonControlID,ITEMS(%ButtonControlID)+1) #SET(%ButtonControl,%WindowControl) #SET(%ButtonAction,'Call a Procedure') #SET(%ButtonProcedure,'Browse' & %RelationKey) #SET(%ButtonThread,'0') #SET(%ButtonThreadStack,'025000') #SET(%RelationCols,%RelationCols - 1) #IF(%RelationCols = 0) #SET(%CurrentY,%CurrentY + %DefaultYOffset + %DefaultButtonHeight) #SET(%CurrentX,%DefaultXOffset) #SET(%RelationCols,4) #ELSE #SET(%CurrentX,%CurrentX + %DefaultXOffset + %DefaultButtonWidth) #ENDIF #ENDFOR #ENDIF #ENDIF #SET(%CurrentX,%WindowWidth - (3 * (%DefaultXOffset + %DefaultButtonWidth))) #SET(%CurrentY,%WindowHeight - (%DefaultButtonHeight + %DefaultYOffset)) #! #INSERT(%QuickSetSaveButton) #SELECT(%QuickTemplateControl,1) #ADD(%WindowControlID,ITEMS(%WindowControlID) + 1) #MESSAGE('Populating: ?OK',3) #SET(%WindowControl,%QuickTemplateControl) #SET(%WindowControlXOffset,%CurrentX) #SET(%WindowControlYOffset,%CurrentY) #SET(%WindowControlHeight,%DefaultButtonHeight) #SET(%WindowControlWidth,%DefaultButtonWidth) #SET(%CurrentX,%CurrentX + %DefaultXOffset + %DefaultButtonWidth) #SET(%CurrentY,%WindowHeight - (%DefaultButtonHeight + %DefaultYOffset)) #! #INSERT(%QuickSetCancelButton) #SELECT(%QuickTemplateControl,1) #MESSAGE('Populating: ?Cancel',3) #ADD(%WindowControlID,ITEMS(%WindowControlID) + 1) #SET(%WindowControl,%QuickTemplateControl) #SET(%WindowControlXOffset,%CurrentX) #SET(%WindowControlYOffset,%CurrentY) #SET(%WindowControlHeight,%DefaultButtonHeight) #SET(%WindowControlWidth,%DefaultButtonWidth) #SET(%CurrentX,%CurrentX + %DefaultXOffset + %DefaultButtonWidth) #! #ADD(%WindowControlID,ITEMS(%WindowControlID) + 1) #MESSAGE('Populating: ?Help',3) #SET(%WindowControl,'?Help') #SET(%WindowControlStatement,'BUTTON(''' & %DefaultHelpControlText & '''),STD(STD:Help)') #SET(%WindowControlXOffset,%CurrentX) #SET(%WindowControlYOffset,%CurrentY) #SET(%WindowControlHeight,%DefaultButtonHeight) #SET(%WindowControlWidth,%DefaultButtonWidth)